在日常編程中,我們經(jīng)常需要進(jìn)行字符串和日期之間的轉(zhuǎn)換,比如將用戶輸入的生日字符串轉(zhuǎn)換成日期格式進(jìn)行計(jì)算。而在Java語(yǔ)言中,String和Date是兩種常用的數(shù)據(jù)類型,因此對(duì)Java String轉(zhuǎn)日期的掌握是非常必要的。
Java String轉(zhuǎn)日期的方法
Java String轉(zhuǎn)日期有多種方式,其中最常用的兩種方法分別是使用SimpleDateFormat類和使用DateTimeFormatter類。下面我們?cè)敿?xì)介紹這兩種方法:
1. 使用SimpleDateFormat類
SimpleDateFormat是Java中一個(gè)用于格式化日期的類,它可以將日期類型轉(zhuǎn)換成字符串類型,也可以將字符串類型轉(zhuǎn)換成日期類型。通過(guò)SimpleDateFormat,我們可以按照需要自定義日期的格式,比如"yyyy-MM-dd HH:mm:ss","yyyy/MM/dd"等。
示例代碼:
String str = "2021-04-10 12:30:00";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(str);
上述代碼中,我們首先定義了一個(gè)String類型的日期字符串,然后用SimpleDateFormat的parse方法將其轉(zhuǎn)換成Date類型的日期。
2. 使用DateTimeFormatter類
DateTimeFormatter是Java8中新增的一個(gè)類,它可以將日期類型轉(zhuǎn)換成字符串類型,也可以將字符串類型轉(zhuǎn)換成日期類型。與SimpleDateFormat不同的是,DateTimeFormatter是線程安全的,并且支持更多格式,比如"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"。
示例代碼:
String str = "2021-04-10T12:30:00.000Z";DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");Instant instant = Instant.parse(str);ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("UTC+8"));LocalDateTime dateTime = zonedDateTime.toLocalDateTime();
上述代碼中,我們首先定義了一個(gè)String類型的日期字符串,并使用DateTimeFormatter的ofPattern方法來(lái)指定日期格式。然后我們將日期字符串轉(zhuǎn)換成Instant類型,再通過(guò)Instant的atZone方法將其轉(zhuǎn)換成帶時(shí)區(qū)的ZonedDateTime類型。最后將ZonedDateTime類型轉(zhuǎn)換為不帶時(shí)區(qū)的LocalDateTime類型。
總結(jié)
Java String轉(zhuǎn)日期是Java編程中基礎(chǔ)而重要的內(nèi)容,掌握了這一技能可以使我們?cè)谔幚頃r(shí)間上更加得心應(yīng)手。本文介紹了兩種Java String轉(zhuǎn)日期的方法,分別是使用SimpleDateFormat類和使用DateTimeFormatter類。通過(guò)這兩種方法的介紹,讀者應(yīng)該能夠更加熟練地應(yīng)用Java String轉(zhuǎn)日期。