好的,我需要一些帮助来了解如何使用java.time格式化程序。我一直在崩溃"不支持的字段"整天例外(双关语无意,抱歉)。
只是一些例子。
这是一个非常简单的基本FormatStyle格式:
import java.time.Instant;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
public class JavaTimeFormat {
public static void main(String[] args) {
Instant now = Instant.now();
DateTimeFormatter formatter =
DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
System.out.println(formatter.format(now));
}
}
我得到的只是一个例外:
Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException:
Unsupported field: DayOfMonth
让我们尝试一个简单的模式。
import java.time.Instant;
import java.time.format.DateTimeFormatter;
public class JavaTimeFormat {
public static void main(String[] args) {
Instant now = Instant.now();
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("dd/MM/yyyy");
System.out.println(formatter.format(now));
}
}
同样的问题。
Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException:
Unsupported field: DayOfMonth
我需要一种灵活的方法来解决这个问题,因为我试图整理一个来自Joda Time JSP标签的JSTL formatting library for java.time分叉。
编辑:我不认为它与另一个问题完全相同。这更为一般,因为我发现问题也与模式有关。我告诉你,解决方案的答案是那个也能解答我的解决方案。无论如何,我已经编辑了标题,以便更容易找到它。
答案 0 :(得分:2)
所以,在写这篇文章时我发现the solution。当然要归功于java.time mastermind Stephen。
为什么格式化程序如果需要还没有恢复到ZoneId.systemDefault()
只是为了逃避我。