我可以/作为DateTimeFormatter.ofLocalizedDateTime(FormatStyle dateStyle, FormatStyle timeStyle)
方法的2个参数传递什么?我尝试JavaDoc 建议,但我收到此错误。我假设你明白在DateTimeFormatter应该能够格式化LocalDate和/或LocalTime对象,正如JavaDoc所暗示的那样,我不认为我误解了,因为JavaDoc显示了它的一个例子。 :
import java.time.*;
import java.util.*;
import java.time.format.*;
class Main {
public static void main(String[] args) {
LocalDate pieDay = LocalDate.of(2017, Month.JANUARY, 23);
LocalTime midnight = LocalTime.of(0,0);
LocalDateTime pieTime = LocalDateTime.of(pieDay, midnight);
DateTimeFormatter f2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT,
FormatStyle.SHORT);
f2.format(pieDay); // Exception here at runtime
f2.format(pieTime);
}
}
以下是我的沙箱用于试验:https://repl.it/JzHb/28但请运行您自己的此代码段版本,以便在提供之前验证您的答案。
Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException:
Unsupported field: ClockHourOfAmPm
答案 0 :(得分:-1)
好的,我的问题的答案是我假设DateTimeFormatter适用于3种组合中的任何一种:
但是,似乎DateTimeFormatter无法格式化LocalDate或LocalTime
LocalDate pieDay = LocalDate.of(2017, Month.JANUARY, 23);
LocalTime midnight = LocalTime.of(0,0);
LocalDateTime pieTime = LocalDateTime.of(pieDay, midnight);
DateTimeFormatter f2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.SHORT);
//System.out.println(f2.format(midnight)); // this throws exception
//System.out.println(f2.format(pieDay)); // this throws exception
f2.format(pieTime); // this line works
这在JavaDoc中并不明显,因为我期望它以灵活的方式工作,就像旧的java.text.DateFormat类一样。