一、datetimeformatter用法介紹
datetimeformatter是Java 8中的一個工具類,可以將日期時間對象(如LocalDate、LocalTime、LocalDateTime等)轉換為字符串,並且還可以將字符串轉換為日期對象。其主要功能是格式化和解析日期時間字符串,使用該類可以快捷地實現對時間格式的控制。
datetimeformatter常用的方法有format()和parse()方法,其中format()方法將日期時間對象轉換為字符串,parse()方法則將字符串轉換為日期時間對象,並且需要注意時間格式字符串的大小寫敏感問題。
二、datetimeformatter用法傳入date
datetimeformatter可以接收多種類型的參數,其中包括date對象。如下示例,我們以LocalDate為例,創建一個日期時間對象並將其傳入到datetimeformatter中進行格式化輸出:
LocalDate localDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); String formattedDate = formatter.format(localDate); System.out.println("默認格式化: " + localDate); System.out.println("格式化後日期: " + formattedDate);
註:ofPattern()方法中的參數為時間格式字符串,其中y表示年份,M表示月份,d表示日期。
三、datetimeformatter註解用法
除了手動傳入時間格式字符串,datetimeformatter還支持使用註解進行時間格式化,大大簡化時間格式化的工作。如下示例,我們使用註解將日期時間對象進行格式化輸出:
public class Person { private String name; @DateTimeFormat(pattern = "yyyy/MM/dd") private LocalDate birthday; // 省略getter/setter } public static void main(String[] args) { Person person = new Person(); person.setName("Jack"); person.setBirthday(LocalDate.of(1990, 7, 15)); ObjectMapper mapper = new ObjectMapper(); mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); String jsonStr = mapper.writeValueAsString(person); System.out.println(jsonStr); }
註:上述代碼中,@DateTimeFormat(pattern = “yyyy/MM/dd”)註解用於標記birthday屬性需要進行格式化輸出,而ObjectMapper是一個將對象序列化為JSON或反序列化的工具。
四、datetimeformatter用法應用
datetimeformatter的應用非常廣泛,例如在網站開發中,我們常常需要將前端傳遞的時間參數進行格式化輸出,在具體實現中可以使用datetimeformatter來實現。如下示例,我們實現了一個SpringMVC的控制器,用於接收前端傳遞的時間戳參數:
@GetMapping("/getTime") public String getTime(@RequestParam("timestamp") @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss") LocalDateTime dateTime) { return dateTime.toString(); }
註:上述代碼中,@RequestParam用於獲取前端傳遞的時間戳參數,@DateTimeFormat註解用於標記dateTime參數需要進行格式化輸出,而返回值通過LocalDateTime的toString()方法進行格式化輸出。
五、datetimeformatter的高級用法
datetimeformatter還有一些高級用法,例如支持本地化(Locale)和時區(ZoneId),可以靈活地適應用戶所在的時區,並且支持多語言環境下的時間格式化。具體實現方式如下:
LocalDate date = LocalDate.now(); DateTimeFormatter germanFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM) .withLocale(Locale.GERMAN); LocalDate xmas = LocalDate.parse("24.12.2021", germanFormatter);
註:上述代碼中,DateTimeFormatter中的ofLocalizedDate()方法用於對時間進行本地化,withLocale()方法用於設置本地化的語言環境,而.ofPattern(“yyyy/MM/dd HH:mm:ss zzz”)則用於設置過濾器的時間格式。另外,時區的設定則通過withZone()方法實現。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240087.html