运行使用类实现日期和时间解析的程序时LocaleDateTime:
// Parse a date and time.
import java.time.*;
import java.time.format.*;
class DateTimeDemo4 {
public static void main(String args[]) {
// Obtain a LocalDateTime object by parsing a date and time string.
LocalDateTime curDateTime =
LocalDateTime.parse("June 21, 2014 12:01 AM",
DateTimeFormatter.ofPattern("MMMM d',' yyyy hh':'mm a"));
// Now, display the parsed date and time.
System.out.println(curDateTime.format(
DateTimeFormatter.ofPattern("MMMM d',' yyyy h':'mm a")));
}
}
不断抛出异常:
Exception in thread "main" java.time.format.DateTimeParseException: Text 'June 21, 2014 12:01 AM' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
at DateTimeDemo4.DateTimeDemo4.main(DateTimeDemo4.java:12)
怎么修?
最有可能的是,由于您的计算机对应于错误的语言位置(在这种情况下,使用了英语),因此引发了异常。因此,必须明确指定。
解决方案
Locale.US在此示例中指定:我们得到预期的结果: