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我也不是很明白
其他更多的我还没用,感觉用不到了,有需要再去查就是了.