Home >Java >javaTutorial >Parse and format dates and times using the new DateTimeFormatter class and TemporalAccessor interface in Java 11
Use the new DateTimeFormatter class and TemporalAccessor interface in Java 11 to parse and format dates and times
Handle dates and times accurately and conveniently as time and date are widely used in modern applications Time is becoming more and more important. To meet this need, Java 11 introduces the new DateTimeFormatter class and TemporalAccessor interface, making the parsing and formatting of dates and times more flexible and easier.
The DateTimeFormatter class is a powerful tool for formatting and parsing dates and times. It provides a set of predefined formats and also allows developers to customize formats. At the same time, DateTimeFormatter also supports localization and time zone processing to meet date and time formats in different regions and needs. The following are some common DateTimeFormatter examples:
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); } }
In the above example, we first create a DateTimeFormatter object to specify the date and time format. During the formatting process, we use the format pattern of yyyy-MM-dd HH:mm:ss
to format the current date and time into a string. Then, we use the format()
method of LocalDateTime
to format the date and time object into a string and print it out.
In addition, we can also parse strings into date and time objects through the parse()
method of DateTimeFormatter
. In this example, we use the same formatting pattern to parse a date and time string into a LocalDateTime
object and print it out.
In addition to using predefined format modes, we can also use other methods of DateTimeFormatter
to achieve more fine-grained date and time formatting. For example, we can use the DateTimeFormatterBuilder
class to build a custom format:
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); } }
In the above example, we use the DateTimeFormatterBuilder
class to create a custom date Formatter. In this formatter, we first added a literal string "Today is " using the appendLiteral()
method, then added the date using the appendValue()
method, and finally Added a literal string ".". By using these methods, we can construct a date format that meets our needs.
In addition to the DateTimeFormatter class, Java 11 also introduces the TemporalAccessor interface, which can be used as a universal accessor for date and time objects. It provides a set of common methods that can access various parts of date and time objects through specific implementation classes such as LocalDateTime, LocalDate, etc. Here are some example usages of 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); } }
In the above example, we created a current date and time object using the LocalDateTime
class. We then use the get()
method and the ChronoField
enumeration to get the various parts of the date and time, such as year, month, day, hour, minute, and second. Finally, we join the pieces together and print them out.
By using the new DateTimeFormatter class and TemporalAccessor interface in Java 11, we can handle dates and times accurately and conveniently. Whether formatting date and time objects into strings, or parsing strings into date and time objects, these new utility classes provide flexible and easy-to-use methods to make date and time processing more efficient and reliable. Developers can choose the appropriate tool based on their needs to handle various date and time operations.
The above is the detailed content of Parse and format dates and times using the new DateTimeFormatter class and TemporalAccessor interface in Java 11. For more information, please follow other related articles on the PHP Chinese website!