Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用

Posted 曲高终和寡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用相关的知识,希望对你有一定的参考价值。

JDK8中增加了一系列时间的类,

(据说)是为了干掉过去的Date,Calendar类的,

过去的Date类(据说)有着线程不安全等诸多弊端,

至于我的个人感受就是用起来实在是很麻烦,我一般封装成几个常用的方法以后每次就调方法,再也不想看里面是怎么实现的了.

而发现了LocalDateTime这种新类以后,经过我的简单的试用,觉得完全可以取代掉之前使用时间的一切方法.非常好用,太好用了.

下面是简单的使用教程:

1,按照自由格式获取当前时间

public static String getTodayByFormat(String timeFormat){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(timeFormat));
    }

简直优雅,甚至我都不想封装成方法了,想用随时写,就是这么容易.

2,获取当前年/月/日

一张图说明,想怎么取,想怎么拼,都随便

3,获取前一天

从前我的笨方法是:

public static String getYesterdayByFormat(String timeFormat){
        //获取当前日期
        Date date = new Date();
        SimpleDateFormat sf = new SimpleDateFormat(timeFormat);
        //通过秒获取下一天日期
        long time = (date.getTime() / 1000) - 60 * 60 * 24;//
        date.setTime(time * 1000);//毫秒
        String yesterday = sf.format(date).toString();
        return yesterday;
    }

如今有了新方法:

public static String getYesterdayByFormat(String timeFormat){
        return LocalDateTime.now().plusDays(1).format(DateTimeFormatter.ofPattern(timeFormat));
    }

同理,我都不想为获取X天后/X小时后单独写方法了,就在下面(以增加为例):

返回值是LocalDateTime,也就意味着可以一直链式点下去,想要多少天以后的数据尽管开口,一句写不完算我输.

 4,获取已经度过的毫秒/秒

为啥一个是to一个是get我也不是很明白

 

其他更多的我还没用,感觉用不到了,有需要再去查就是了.

以上是关于Java LocalDateTime,DateTimeFomatter----JDK8新时间类的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

Swagger:将 Java LocalDateTime 转换为 Joda LocalDateTime

Java LocalDateTime 计算时间差

Java语言 LocalDateTime 计算时间差

JAVA8 LocalDateTime

Hibernate 5.1 和 Java 8 LocalDateTime

java8 LocalDateTime时间方法