格式化或解析時刻/同一天的一年元素的時刻是與類Moment
沒有特別的問題,可以通過選擇suitable pattern剛剛做了,看到這個演示了閏秒:
Moment ls = PlainTimestamp.of(2016, 12, 31, 23, 59, 59).atUTC().plus(1, SI.SECONDS);
System.out.println(ls); // 2016-12-31T23:59:60Z
ChronoFormatter<Moment> f =
ChronoFormatter.ofMomentPattern(
"uuuu-DDD'T'HH:mm:ssX", PatternType.CLDR, Locale.ROOT, ZonalOffset.UTC);
String text = f.format(ls);
System.out.println(text); // 2016-366T23:59:60Z
Moment parsed = f.parse(text);
System.out.println(parsed.isSimultaneous(ls)); // true
請記住,任何conversion的Moment
-對象例如java.time.Instant
或java.util.Date
將鬆散閏秒信息但是。
另一點:訪問類Moment
中的一年級元素不是直接可能的,因爲一年中的某個本地元素與不具有區域偏移的通用時間無關,但可以通過編程方式完成如果你還指定了區域偏移或時區。例如:
System.out.println(ls.get(PlainDate.DAY_OF_YEAR.at(ZonalOffset.UTC))); // 366
同樣的方法也可以應用於時間元素:
System.out.println(ls.get(PlainTime.SECOND_OF_MINUTE.at(ZonalOffset.UTC))); // 60
關於最後一個例子:它只會在Moment
環境中工作,但不在本地型PlainTime
的情況下,當然。在處理類Moment
時,閏秒支持深深植入了Time4J的各個級別,以編程方式以及格式化和解析。
非常感謝你! – william