1. 程式人生 > 實用技巧 >Java 8日期時間類的使用

Java 8日期時間類的使用

文件:Java 8日期時間類的使用.note
連結:http://note.youdao.com/noteshare?id=d9a34268ff24557e30504b9ae5acdeac&sub=108FC0043AEE4FE59C2A35D9BE603474

從Java 8開始,Java.time提供了新的處理時間日期的物件: 本地的日期和時間:LocalDateTime、LocalDate、LocalTime; 帶時區的日期時間:ZonedDateTime; 時刻:Instant; 時區:ZoneId,ZoneOffset; 時間間隔:Duration 以及用於取代SimpleDateFormatter的格式化類DateTimeFormatter。 和舊的API相比,新API嚴格區分了時刻、本地時間、本地日期和帶時區的日期時間,並且,對事件的運算更加方便。 最後,新API的型別幾乎全是不可變型別,可以放心使用,不用擔心被修改。 LocalDateTime 作為一個工具類,LocalDateTIme的構造方法時私有的,因此我們想要獲取一個此物件,必須使用其提供的公開方法。
LocalDateTime now = LocalDateTime.now();
System.out.println("now:"+now);
列印結果:
now:2020-09-07T14:40:55.243
本地日期和時間通過now()獲取到的總是以當前預設時區返回的,和舊API不同,LocalDateTime、LocalDate和LocalTime預設嚴格按照ISO 8601規定的日期和時間格式進行列印。 因為嚴格按照ISO 8601的格式,因此,將字串轉換為LocalDateTime就可以傳入標準格式:
LocalDateTime timeSq = LocalDateTime.parse("2020-09-07T14:40:55.243");
System.out.println("timeSq:"+timeSq);
列印結果:
timeSq:2020-09-07T14:40:55.243
注意ISO 8601規定的日期和時間分隔符是T。標準格式如下: 日期:yyyy-MM-dd 時間:HH:mm:ss 帶毫秒的時間:HH:mm:ss.SSS 日期和時間:yyyy-MM-dd'T'HH:mm:ss 帶毫秒的日期和時間:yyyy-MM-dd'T'HH:mm:ss.SSS