zoukankan      html  css  js  c++  java
  • Java获得任意一个时间的下一天的时间

    一、问题

    获得任意一个时间的下一天的时间

    二、分析

    Java提供了java.util.Date类来处理日期格式的数据,通过它可以得到其所代表的日期的年月日和时分秒信息。因此,可以很自然地想到,要得到任何一个时间的下一天的时间,为Date的Day数据加上1天即可。但是,如果是月底怎么办?如果是年底怎么办?如果还是闰年怎么办?如果要在加上1天之前,进行这些判断的话,这样的程序就会变得相当的复杂。

    其实,java.util.Date类的底层的实现是通过一个long型的整型数据来保存日期的,这个值记录的是任何一个时间距1970年1月1日,0日0分0秒的毫秒数。

    这里可以验证一下,通过执行下面一段代码可以得到一个整型数字51。

    package com.joshua317;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Main {
    
        public static void main(String[] args) {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("当前时间:" + simpleDateFormat.format(date));
    
            //当前的毫秒数
            long time=System.currentTimeMillis();
            //得到距今多少年
            System.out.println("距今:" + time/1000/60/60/24/365 + "年");
        }
    }
    
     

    因此,完全可以不用管给定的时间是否是月底、年底或闰月的月底等条件,直接为它的毫秒数加上24小时所代表的毫秒数即可,然后再用新的long型的毫秒数构造一个新的Date类型的对象,该Date对象就是给定时间的下一天时间。

    三、编程

    package com.joshua317;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Main {
    
        public static void main(String[] args) {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("当前时间:" + simpleDateFormat.format(date));
    
            Date nextDate = getNextDay(date);
    
            System.out.println("下一天时间:" + simpleDateFormat.format(nextDate));
        }
    
        public static Date getNextDay(Date date)
        {
            //1天24小时,1小时60分钟,1分钟60秒,1秒1000毫秒
            long addTime = 1 * 24 * 60 * 60 * 1000;
            Date nextDate = new  Date(date.getTime() + addTime);
            return nextDate;
        }
    }
     

     

  • 相关阅读:
    JDOM入门实例:读取与创建xml文档
    C++构造函数/析构函数/拷贝构造函数/深拷贝浅拷贝解析
    java类的访问权限
    hive怎样决定reducer个数
    hive Cli常用操作(翻译自Hive wiki)
    hive local hadoop特性
    hive数据操作(翻译自Hive wiki+实例讲解)
    hive的hive.exec.parallel参数说明
    hive数据类型(翻译自Hive Wiki)
    hive 创建/删除/截断 表(翻译自Hive wiki)
  • 原文地址:https://www.cnblogs.com/joshua317/p/15460347.html
Copyright © 2011-2022 走看看