使用Java自带类库实现日期时间增减还是比自己人工拆分编写要牢靠,代码也简洁多了。

下面代码实现了在原有日期时间上加上一些分钟得到新的日期时间的功能,稍加改造还可以实现逆向运算。

代码:

package datetime;

import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeTest {
    public static String getNewTime(String datetime,String addMinutes) throws Exception{
        SimpleDateFormat formatter =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");

        Date originalDate = formatter.parse(datetime);

        Calendar newTime = Calendar.getInstance();
        newTime.setTime(originalDate);
        newTime.add(Calendar.MINUTE,Integer.parseInt(addMinutes));//日期加n分

        Date newDate=newTime.getTime();
        String retval = formatter.format(newDate);

        return retval;
    }

    public static void main(String[] args) throws Exception {
        String[][] arrays= {
                {"2019年11月15日 08时63分","10"},
                {"2019年11月15日 08时03分","15"},
                {"2019年11月15日 09时63分","20"},
                {"2019年11月15日 24时63分","25"},
                {"2019年11月15日 08时63分","30"},
                {"2019年11月15日 18时63分","35"},
                {"2019年11月15日 08时63分","40"},
                {"2019年11月15日 08时63分","45"},
                {"2019年11月15日 15时00分","50"},
                {"2019年11月15日 18时01分","60"},
                {"2019年11月15日 18时01分","360"},
        };

        for(String[] arr:arrays) {
            String template=" {0} + {1}分 = {2}";
            Object[] objs={arr[0],arr[1],getNewTime(arr[0],arr[1])};
            System.out.println(MessageFormat.format(template, objs));
        }
    }
}

输出:

 2019年11月15日 08时63分 + 10分 = 2019年11月15日 09时13分
 2019年11月15日 08时03分 + 15分 = 2019年11月15日 08时18分
 2019年11月15日 09时63分 + 20分 = 2019年11月15日 10时23分
 2019年11月15日 24时63分 + 25分 = 2019年11月16日 01时28分
 2019年11月15日 08时63分 + 30分 = 2019年11月15日 09时33分
 2019年11月15日 18时63分 + 35分 = 2019年11月15日 19时38分
 2019年11月15日 08时63分 + 40分 = 2019年11月15日 09时43分
 2019年11月15日 08时63分 + 45分 = 2019年11月15日 09时48分
 2019年11月15日 15时00分 + 50分 = 2019年11月15日 15时50分
 2019年11月15日 18时01分 + 60分 = 2019年11月15日 19时01分
 2019年11月15日 18时01分 + 360分 = 2019年11月16日 00时01分

附录:SimpleFormat输出格式定义,这个必不可少:

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几

--END-- 2019-11-15 18:35

[Java]某日期时间加上若干分钟得到新的日期时间的更多相关文章

  1. 《Java 8实战》读书笔记系列——第三部分:高效Java 8编程(四):使用新的日期时间API

    https://www.lilu.org.cn/https://www.lilu.org.cn/ 第十二章:新的日期时间API 在Java 8之前,我们常用的日期时间API是java.util.Dat ...

  2. 《Java 8 in Action》Chapter 12:新的日期和时间API

    在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类.同时这个类还有两个很大的缺点:年份的起始选择是1900年,月份的起始从0开始. 在Java 1.1中,Date类中的很多 ...

  3. MySql日期加天数,小时,分钟...得到新的时间

    在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE(), interval 3 day); 在指定的日期上加三天: SELECT date_add('2014 ...

  4. Mysql在字符串类型的日期上加上10分钟并和如今的日期做比較

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ufo2910628/article/details/32092869 SELECT id FROM ...

  5. Java 8 (11) 新的日期和时间API

    在Java 1.0中,对日期和时间的支持只能依赖java.util.Date类.这个类只能以毫秒的精度表示时间.这个类还有很多糟糕的问题,比如年份的起始选择是1900年,月份的起始从0开始.这意味着你 ...

  6. JAVA中String.format的用法 格式化字符串,格式化数字,日期时间格式化,

    1.对整数进行格式化:%[index$][标识][最小宽度]转换方式        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解, ...

  7. Java日期时间API系列1-----Jdk7及以前的日期时间类

    先看一个简单的图: 主要的类有: Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为 ...

  8. java 日期和字符串互转,依据当天整天时间 得到当天最后一秒的日期时间

    java 日期和字符串互转.依据当天整天时间   得到当天最后一秒的日期时间 package com.hi; import java.text.DateFormat; import java.text ...

  9. java 8中新的日期和时间API

    java 8中新的日期和时间API 使用LocalDate和LocalTime LocalDate的实例是一个不可变对象,它只提供了简单的日期,并不含当天的时间信息.另外,它也不附带任何与时区相关的信 ...

随机推荐

  1. Linux之virtualenv和virtualenvwrapper

    一,介绍 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难.此时,我们需要对于不同的工 ...

  2. jQuery基础知识1

    jquery的概念 js query jquery库 封装了大量js,封装js的入口函数.兼容性问题.DOM操作.事件.ajax 使用jquery 下载包 引用 <script src=&quo ...

  3. 大数据之路week06--day07(Hadoop生态圈的介绍)

    Hadoop 基本概念 一.Hadoop出现的前提环境 随着数据量的增大带来了以下的问题 (1)如何存储大量的数据? (2)怎么处理这些数据? (3)怎样的高效的分析这些数据? (4)在数据增长的情况 ...

  4. 男上加男团队对 修!咻咻! 团队,云打印 团队的Beta产品测试报告

    男上加男团队对 修!咻咻! 团队的Beta产品测试报告 男上加男团队对云打印 团队的Beta产品测试报告 6.2 1.57分补充 睡觉前看终于看到发布的在线版本 重新测试了一下 卡在注册这关 无法收到 ...

  5. P2P system: Napster

    Napster structure client machines之所以叫peers是因为对于server来说这些machines是平等对待的 当你upload一首歌曲如PennyLane.mp3时, ...

  6. Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer

    链接: https://codeforces.com/contest/1251/problem/C 题意: You are given a huge integer a consisting of n ...

  7. 使用开发IDE生成一个springboot工程。

    说实话,没办法,大势所趋. 当今天下,大企业,还是小公司,只要有想要更高效率的提高开发效率,能频繁迭代,又影响最小,那么只有使用分布式工程开发. 使用它就因为他快,加载东西,插件快,jar包引入方便. ...

  8. ES6学习记录(一)

    Class类 Class的静态方法 类相当于实例的原型,所有在类中定义的方法,都会被实例继承.如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态 ...

  9. MySQL-数据库三范式

    数据库三范式 (1)第一范式(1NF): 定义:每一列都是不可分割的原子数据项(强调的是列的原子性): 例:一个表:[联系人](姓名,性别,电话) 如果在实际场景中,一个联系人有家庭电话和公司电话,那 ...

  10. Greenplum table 之 外部表

    转载自: https://www.cnblogs.com/kingle-study/p/10552097.html 一.外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发 ...