💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Java 8 `DateTimeFormatter` > 原文: [https://howtodoinjava.com/java/date-time/java8-datetimeformatter-example/](https://howtodoinjava.com/java/date-time/java8-datetimeformatter-example/) Java 示例,可使用`DateTimeFormatter`将`ZonedDateTime`,`LocalDateTime`,`LocalDate`和`LocalTime`格式化为具有预定义和自定义模式的字符串。 ## 1\. 创建`DateTimeFormatter` 您可以通过两种方式创建`DateTimeFormatter`: 1. 使用内置常量 2. 使用`ofPattern()`方法创建自己的模式 ```java //Use inbuilt pattern constants DateTimeFormatter inBuiltFormatter1 = DateTimeFormatter.ISO_DATE_TIME; DateTimeFormatter inBuiltFormatter2 = DateTimeFormatter.ISO_LOCAL_DATE_TIME; //Define your own custom patterns DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mma z"); ``` ## 2\. 格式化`ZonedDateTime` Java 示例,将`ZonedDateTime`格式化为带有`DateTimeFormatter`的字符串。 ```java //Create formatter DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a z"); //Zoned datetime instance ZonedDateTime zdt = ZonedDateTime.now(); //Get formatted String String zdtString = FOMATTER.format(zdt); System.out.println(zdtString); // 07/15/2018 at 02:51 PM IST ``` ## 3\. 格式化`LocalDateTime` `LocalDate`没有时区部分。 因此,相应地创建模式。 ```java //Create formatter DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm a"); //Local date time instance LocalDateTime localDateTime = LocalDateTime.now(); //Get formatted String String ldtString = FOMATTER.format(localDateTime); System.out.println(ldtString); // 07/15/2018 at 02:49 PM ``` ## 4\. 格式化`LocalDate` `LocalDate`没有时间和时区部分。 因此,相应地创建模式。 ```java //Create formatter DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("MM/dd/yyyy"); //Local date instance LocalDate localDate = LocalDate.now(); //Get formatted String String dateString = FOMATTER.format(localDate); System.out.println(dateString); //07/15/2018 ``` ## 5\. 格式化`LocalTime` `LocalTime`没有日期和时区部分。 因此,相应地创建模式。 ```java //Create formatter DateTimeFormatter FOMATTER = DateTimeFormatter.ofPattern("hh:mm a"); //Local time instance LocalTime localTime = LocalTime.now(); //Get formatted String String localTimeString = FOMATTER.format(localTime); System.out.println(localTimeString); // 02:53 PM ``` ## 6\. 有用的格式化模式 | 模式 | 示例 | | --- | --- | | `yyyy-MM-dd`( [ISO](https://www.w3.org/QA/Tips/iso-date) ) | `2018-07-14` | | `dd-MMM-yyyy` | `14-Jul-2018` | | `dd/MM/yyyy` | `14/07/2018` | | `E, MMM dd yyyy` | `Sat, Jul 14 2018` | | `h:mm a` | `12:08 PM` | | `EEEE, MMM dd, yyyy HH:mm:ss a` | `Saturday, Jul 14, 2018 14:31:06 PM` | | `yyyy-MM-dd'T'HH:mm:ssZ` | `2018-07-14T14:31:30+0530` | | `hh 'o''clock' a, zzzz` | `12 o’clock PM, Pacific Daylight Time` | | `K:mm a, z` | `0:08 PM, PDT` | ## 7\. 更多例子 1. [Java 8 `ResolverStyle.STRICT` – 严格的日期验证和解析](https://howtodoinjava.com/java8/resolverstyle-strict-date-parsing/) 学习愉快! 参考文献: 1. [`DateTimeFormatter` Javadoc](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html) 2. [`ZonedDateTime` Javadoc](https://docs.oracle.com/javase/8/docs/api/java/time/ZonedDateTime.html) 3. [`LocalDateTime` Javadoc](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html) 4. [`LocalDate` Javadoc](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html) 5. [`LocalTime` Javadoc](https://docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html)