Verwenden Sie die neue DateTimeFormatter-Klasse und die TemporalAccessor-Schnittstelle in Java 11, um Datums- und Uhrzeitangaben zu analysieren und zu formatieren.
Da Uhrzeit und Datum in modernen Anwendungen weit verbreitet sind, wird die genaue und bequeme Handhabung von Datums- und Uhrzeitangaben immer wichtiger. Um diesem Bedarf gerecht zu werden, führt Java 11 die neue Klasse DateTimeFormatter und die Schnittstelle TemporalAccessor ein, wodurch das Parsen und Formatieren von Datums- und Uhrzeitangaben flexibler und einfacher wird. Die Klasse „DateTimeFormatter“ ist ein leistungsstarkes Tool zum Formatieren und Analysieren von Datums- und Uhrzeitangaben. Es bietet eine Reihe vordefinierter Formate und ermöglicht Entwicklern auch die Anpassung von Formaten. Gleichzeitig unterstützt DateTimeFormatter auch die Lokalisierung und Zeitzonenverarbeitung, um Datums- und Zeitformate in verschiedenen Regionen und Anforderungen zu erfüllen. Hier sind einige Beispiele für gängige DateTimeFormatter:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class DateTimeFormatterExample { public static void main(String[] args) { LocalDateTime dateTime = LocalDateTime.now(); // 格式化为字符串 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = dateTime.format(formatter); System.out.println("Formatted Date and Time: " + formattedDateTime); // 解析字符串为日期和时间 String dateTimeString = "2022-01-01 12:00:00"; LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter); System.out.println("Parsed Date and Time: " + parsedDateTime); } }
Im obigen Beispiel erstellen wir zunächst ein DateTimeFormatter-Objekt, um das Format von Datum und Uhrzeit anzugeben. Während des Formatierungsprozesses verwenden wir das Formatmuster yyyy-MM-dd HH:mm:ss
, um das aktuelle Datum und die aktuelle Uhrzeit in eine Zeichenfolge zu formatieren. Anschließend verwenden wir die Methode format()
von LocalDateTime
, um das Datums- und Uhrzeitobjekt in einen String zu formatieren und auszudrucken.
Darüber hinaus können wir mit der parse()
-Methode von DateTimeFormatter
auch Zeichenfolgen in Datums- und Zeitobjekte analysieren. In diesem Beispiel verwenden wir dasselbe Formatierungsmuster, um eine Datums- und Uhrzeitzeichenfolge in ein LocalDateTime
-Objekt zu analysieren und auszugeben. yyyy-MM-dd HH:mm:ss
的格式模式,将当前的日期和时间格式化为字符串。然后,我们使用LocalDateTime
的format()
方法,将日期和时间对象格式化为字符串,并将其打印出来。
另外,我们还可以通过DateTimeFormatter
的parse()
方法,将字符串解析为日期和时间对象。在这个示例中,我们使用相同的格式模式,将一个日期和时间字符串解析为LocalDateTime
对象,并将其打印出来。
除了使用预定义的格式模式外,我们还可以使用DateTimeFormatter
的其他方法来实现更加细粒度的日期和时间格式化。例如,我们可以使用DateTimeFormatterBuilder
类来构建自定义的格式:
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; public class CustomDateTimeFormatterExample { public static void main(String[] args) { LocalDate date = LocalDate.now(); DateTimeFormatter formatter = new DateTimeFormatterBuilder() .appendLiteral("Today is ") .appendValue(DateTimeFormatter.ISO_LOCAL_DATE) .appendLiteral(".") .toFormatter(); String formattedDate = date.format(formatter); System.out.println(formattedDate); } }
在上面的示例中,我们使用DateTimeFormatterBuilder
类来创建一个自定义的日期格式化器。在这个格式化器中,我们首先使用appendLiteral()
方法添加了一个字面量字符串"Today is ",然后使用appendValue()
方法添加了日期,最后再添加了一个字面量字符串"。"。通过使用这些方法,我们可以构建出符合自己需求的日期格式。
除了DateTimeFormatter类外,Java 11还引入了TemporalAccessor接口,该接口可以用作日期和时间对象的通用访问器。它提供了一组通用的方法,可以通过具体的实现类如LocalDateTime、LocalDate等来访问日期和时间对象的各个部分。以下是TemporalAccessor的一些示例用法:
import java.time.LocalDateTime; import java.time.temporal.ChronoField; public class TemporalAccessorExample { public static void main(String[] args) { LocalDateTime dateTime = LocalDateTime.now(); int year = dateTime.get(ChronoField.YEAR); int month = dateTime.get(ChronoField.MONTH_OF_YEAR); int day = dateTime.get(ChronoField.DAY_OF_MONTH); int hour = dateTime.get(ChronoField.HOUR_OF_DAY); int minute = dateTime.get(ChronoField.MINUTE_OF_HOUR); int second = dateTime.get(ChronoField.SECOND_OF_MINUTE); System.out.println("Current Date: " + year + "-" + month + "-" + day); System.out.println("Current Time: " + hour + ":" + minute + ":" + second); } }
在上面的示例中,我们使用LocalDateTime
类创建了一个当前的日期和时间对象。然后,我们使用get()
方法和ChronoField
DateTimeFormatter
verwenden, um eine feinere Datums- und Uhrzeitformatierung zu erreichen. Beispielsweise können wir die Klasse DateTimeFormatterBuilder
verwenden, um ein benutzerdefiniertes Format zu erstellen: rrreee
Im obigen Beispiel verwenden wir die KlasseDateTimeFormatterBuilder
, um ein benutzerdefiniertes Datumsformatierungsgerät zu erstellen. In diesem Formatierer haben wir zunächst mit der Methode appendLiteral()
eine Literalzeichenfolge „Today is“ und dann mit der Methode appendValue()
das Datum hinzugefügt Literalzeichenfolge „.“ wird hinzugefügt. Mithilfe dieser Methoden können wir ein Datumsformat erstellen, das unseren Anforderungen entspricht. 🎜🎜Zusätzlich zur DateTimeFormatter-Klasse führt Java 11 auch die TemporalAccessor-Schnittstelle ein, die als universeller Accessor für Datums- und Zeitobjekte verwendet werden kann. Es bietet eine Reihe allgemeiner Methoden, die über bestimmte Implementierungsklassen wie LocalDateTime, LocalDate usw. auf verschiedene Teile von Datums- und Zeitobjekten zugreifen können. Hier sind einige Beispielverwendungen von TemporalAccessor: 🎜rrreee🎜 Im obigen Beispiel haben wir mit der Klasse LocalDateTime
ein aktuelles Datums- und Uhrzeitobjekt erstellt. Anschließend verwenden wir die Methode get()
und die Enumeration ChronoField
, um die verschiedenen Teile des Datums und der Uhrzeit abzurufen, z. B. Jahr, Monat, Tag, Stunde, Minute usw zweite. Zum Schluss fügen wir die Teile zusammen und drucken sie aus. 🎜🎜Durch die Verwendung der neuen DateTimeFormatter-Klasse und der TemporalAccessor-Schnittstelle in Java 11 können wir Datums- und Uhrzeitangaben genau und bequem verarbeiten. Unabhängig davon, ob Sie Datums- und Uhrzeitobjekte in Zeichenfolgen formatieren oder Zeichenfolgen in Datums- und Uhrzeitobjekte analysieren, bieten diese neuen Dienstprogrammklassen flexible und benutzerfreundliche Methoden, um die Datums- und Uhrzeitverarbeitung effizienter und zuverlässiger zu gestalten. Entwickler können je nach Bedarf das geeignete Tool für die Abwicklung verschiedener Datums- und Uhrzeitvorgänge auswählen. 🎜Das obige ist der detaillierte Inhalt vonAnalysieren und formatieren Sie Datums- und Uhrzeitangaben mit der neuen DateTimeFormatter-Klasse und der TemporalAccessor-Schnittstelle in Java 11. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!