java.util.Date:
缺点:
1.设计上存在问题【月份从1开始,而日期从0开始】
2.线程不安全
3.处理时区不方便
4.Date类的一些构造函数和方法已弃用【因为兼容性问题】
替代者:Java 8开始,引入java.time. *
优点:
1.清晰性【Calendar中,月份从0开始,一周的天数从1开始】
2.线程安全
3.易于使用
4.时区处理【使用Local和ZonedDate/Time API处理】
5.精确的时间信息【精确到纳秒】
用法:
java
1.表示日期(年月日):LocalDate [eg:LocalDate date=LocalDate.of(2024,Month.March,31); --2024年3月31日]
2.表示时间(精确到纳秒):LocalTime[eg:LocalTime time=LocalTime.of(12,30); --12点30分]
3.表示日期和时间:LocalDateTime[eg:LocalDateTime dt=LocalDateTime.of(2024,Month.MARCH,31,12,30); --2024年3月31日12点30分]
4.带有时区的日期和时间:ZonedDateTime[eg:ZonedDateTime zonedDt=ZonedDateTime.of(dt,ZoneId.of("Asia/Shanghai"); --2024年3月31日12点30分(上海时区)]