Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정하세요.
시간과 날짜가 최신 애플리케이션에서 널리 사용됨에 따라 날짜와 시간을 정확하고 편리하게 처리하는 것이 점점 더 중요해지고 있습니다. 이러한 요구 사항을 충족하기 위해 Java 11에서는 날짜와 시간의 구문 분석 및 형식 지정을 더욱 유연하고 쉽게 만드는 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 도입했습니다.
DateTimeFormatter 클래스는 날짜와 시간의 형식을 지정하고 구문 분석하는 강력한 도구입니다. 이는 사전 정의된 형식 세트를 제공하며 개발자가 형식을 사용자 정의할 수도 있습니다. 동시에 DateTimeFormatter는 다양한 지역과 요구 사항의 날짜 및 시간 형식을 충족하기 위해 현지화 및 시간대 처리도 지원합니다. 다음은 일반적인 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); } }
위의 예에서는 먼저 날짜 및 시간 형식을 지정하기 위해 DateTimeFormatter 개체를 만듭니다. 형식 지정 프로세스 중에 yyyy-MM-dd HH:mm:ss
형식 패턴을 사용하여 현재 날짜와 시간을 문자열 형식으로 지정합니다. 그런 다음 LocalDateTime
의 format()
메서드를 사용하여 날짜 및 시간 개체의 형식을 문자열로 지정하고 인쇄합니다. 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
의 parse()
메서드를 통해 문자열을 날짜 및 시간 개체로 구문 분석할 수도 있습니다. 이 예에서는 동일한 형식 지정 패턴을 사용하여 날짜 및 시간 문자열을 LocalDateTime
개체로 구문 분석하고 이를 인쇄합니다. 미리 정의된 형식 모드를 사용하는 것 외에도 DateTimeFormatter
의 다른 방법을 사용하여 더욱 세분화된 날짜 및 시간 형식을 구현할 수도 있습니다. 예를 들어 DateTimeFormatterBuilder
클래스를 사용하여 사용자 정의 형식을 만들 수 있습니다. 🎜rrreee🎜 위 예에서는 DateTimeFormatterBuilder
클래스를 사용하여 사용자 정의 날짜 포맷터 장치를 만듭니다. 이 포맷터에서는 먼저 appendLiteral()
메서드를 사용하여 리터럴 문자열 "Today is"를 추가한 다음 appendValue()
메서드를 사용하여 날짜를 추가했습니다. 리터럴 문자열 "."이 추가됩니다. 이러한 방법을 사용하면 필요에 맞는 날짜 형식을 구성할 수 있습니다. 🎜🎜DateTimeFormatter 클래스 외에도 Java 11에는 날짜 및 시간 객체에 대한 범용 접근자로 사용할 수 있는 TemporalAccessor 인터페이스도 도입되었습니다. LocalDateTime, LocalDate 등과 같은 특정 구현 클래스를 통해 날짜 및 시간 개체의 다양한 부분에 액세스할 수 있는 공통 메서드 집합을 제공합니다. 다음은 TemporalAccessor의 몇 가지 사용 예입니다. 🎜rrreee🎜 위 예에서는 LocalDateTime
클래스를 사용하여 현재 날짜 및 시간 개체를 만들었습니다. 그런 다음 get()
메서드와 ChronoField
열거를 사용하여 연도, 월, 일, 시, 분, 시간과 같은 날짜와 시간의 다양한 부분을 가져옵니다. 두번째. 마지막으로 조각들을 합쳐서 인쇄합니다. 🎜🎜Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하면 날짜와 시간을 정확하고 편리하게 처리할 수 있습니다. 날짜 및 시간 개체의 형식을 문자열로 지정하거나 문자열을 날짜 및 시간 개체로 구문 분석하는 경우 이러한 새로운 유틸리티 클래스는 날짜 및 시간 처리를 더욱 효율적이고 안정적으로 만드는 유연하고 사용하기 쉬운 방법을 제공합니다. 개발자는 다양한 날짜 및 시간 작업을 처리하기 위해 필요에 따라 적절한 도구를 선택할 수 있습니다. 🎜위 내용은 Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!