• Java日期和时间


    Java 日期和时间

    学习自

    http://blog.csdn.net/zjf280441589/article/details/50447533

    Date类

    Date 类是在JDK 1.0 的时候提供的,到现在可以说是历史非常悠久了,其中有很多方法都已经弃用。

    构造函数
    //这样new出来的代表的是当前的时间
    Date date = new Date();
    //1970-1-1 00:00:00以来经过的毫秒数)来生成Date对象.
    Date date = new Date(long date);
    
    常用方法
    /**
     * 获取当前的系统时间
     */
    private void getSystemTime() {
        Date date = new Date(1000);
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = format.format(date);
        System.out.println(time);
    }
    
    /**
     * 判断date是否在一个date之后
     */
    private void after() {
        Date date = new Date();
        Date checkDate = new Date(System.currentTimeMillis() + 1000);
        System.out.println(date.after(checkDate));
    }
    
    /**
     * 判断date是否在一个date之前
     */
    private void before() {
        Date date = new Date();
        Date checkDate = new Date(System.currentTimeMillis() + 1000);
        System.out.println(date.before(checkDate));
    }
    

    Calendar

    因为Calendar有很多的缺陷,并且也比较老旧,JDK又提供了java.util.Calendar 类,Calendar类是一个抽象类,没有具体实现,他是一个所有日历的模板。

    获取Calendar实例
    //获取公历日历
    Calendar calendar = Calendar.getInstance();
    
    常用方法
    //可以进行时间的加减
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    //获取不同的时间的值
    int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
    
    将字符串转化为时间
    /**
     * 將字符串转化为时间
     */
    private void convertStringToDate() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //被转换的时间的格式必须要与DateFormat解析的时间格式相同
        String strDate = "2018-9-19 08:11:11";
        try {
            Date date = dateFormat.parse(strDate);
            String value = dateFormat.format(date);
            System.out.println(value);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    

    计算两个时间之间的差值

    通过获取总的毫秒数,然后进行换算

    /**
     * 计算两个时间之间的差值
     */
    private void getTimeSpan() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date dateFirst = dateFormat.parse("2018-10-11 09:11:11");
            Date dateSecond = dateFormat.parse("2018-10-10 07:11:10");
            long diff = dateSecond.getTime() - dateFirst.getTime();
            diff = diff / 1000;
            //
            long second = diff % 60;
            long minute = diff % 3600 / 60;
            long hour = diff % (3600 * 24) / 3600;
            long day = diff / (3600 * 24);
            String value = 
            String.format("%S 与 %S 之间相差了 %d days %d hours %d minutes %d second", 
                            dateFormat.format(dateSecond),
                            dateFormat.format(dateFirst),
                            day, hour,
                            minute,
                            second);
            System.out.println(value);
          //2018-10-10 07:11:10 与 2018-10-11 09:11:11 之间相差了 -1 days -2 hours 0 minutes -1 second
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
  • 相关阅读:
    报错:Table 'sell.hibernate_sequence' doesn't exist
    “可恶”的mariadb
    日志的使用
    微信小程序开发步骤简述
    我对同步异步阻塞和非阻塞的简单理解
    dubbo+zookeeper搭建时报错java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
    在CentOS7中安装zookeeper
    markdown 显示图片的三种方式
    Spring Data JPA 提供的各种Repository接口作用
    windows nginx 搭建文件服务器(通俗易懂)
  • 原文地址:https://www.cnblogs.com/slyfox/p/8589814.html
Copyright © 2020-2023  润新知