LocalDateTime是弥补Calendar的缺点的
最好使用 LocalDateTime ,不使用 Calendar
官方解释为:simple beautiful strong immutable thread-safe
翻译:简单、漂亮、坚固、不可变的,线安全
Java的Date,Calendar类型使用起来并不是很方便,而且Date类(据说)有着线程不安全等诸多弊端。同时若不进行封装,会在每次使用时特别麻烦。于是Java8推出了线程安全、简易、高可靠的时间包。并且数据库中也支持LocalDateTime类型,在数据存储时候使时间变得简单。Java8这次新推出的包括三个相关的时间类型:LocalDateTime年月日十分秒;LocalDate日期;LocalTime时间;三个包的方法都差不多。
引用:https://blog.csdn.net/wy233333/article/details/103807987
1、不是有Date吗?
可读性差点,格式需要SimpleDateFormat转换
获取固定专用时间处理麻烦,好多getYear()...都弃用了
2、为什么禁用static修饰SimpleDateFormat/
多线程访问时,format方法和parse方法线程不安全,每次调用都创建一个SimpleDateFormat,但是耗性能和内存
3、Calendar?可以去试试处理时间的,我们需要很多自定义常用时间的获取方法,你来一个一个慢慢敲还是用补充完善版本的LocalDateTime?
Java8特供:LocalDate、LocalTime、LocalDateTime
1、实例化API:
2、对象方法:很全吧
简单测试
package com.wxrem.controller;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
/**
* @author wxb
* @date 2020-08-25 09:37
*/
public class MyLocalDateTest {
public static void main(String[] args) {
test();
}
public static void test(){
LocalDate localDate = LocalDate.now();
System.out.println(localDate.with(TemporalAdjusters.firstDayOfMonth()));
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
System.out.println(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
System.out.println(localDateTime.with(TemporalAdjusters.firstDayOfMonth()).
format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
System.out.println(LocalDateTime.parse("2020-11-01T09:40:28.276"). format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
}
}
结果,其他就不粘了,简单易懂的API命名
2020-11-01
2020-11-25T09:45:37.878
2020-11-25 09:45:37
2020-11-01T09:45:37.878
2020-11-01 09:45:37
2020-11-01 09:40:28