The DateTimeFormatter
类文档定义单独的符号u
年度和y
时代年份:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
年和年代有什么区别?
答案就在文档中等年代学
- 时代 - 有两个时代,“当前时代”(CE) 和“当前时代之前”(BCE)。
- 时代年份 - 时代年份与当前 CE 时代的预产年相同。对于 ISO 纪元之前的 BCE 纪元,随着时间倒退,年份从 1 向上增加。
- proleptic-year - proleptic 年份与当前时代的纪元年份相同。对于上一个纪元,年的值为零,然后为负值。
u
会给你不孕之年。y
将为您提供该时代的年份。
这种差异对于公元前时代来说非常重要。预兆年 0 实际上是公元前 1 年,其后是预兆年 1,即公元 1 年。预兆年份可以为负,时代年份则不能。
这是一个片段,有助于直观地了解其工作原理:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("'proleptic' : u '= era:' y G");
for (int i = 5; i > -6 ; i--) {
LocalDate localDate = LocalDate.of(i, 3, 14);
System.out.println(formatter.format(localDate));
}
Output:
proleptic : 5 = era: 5 AD
proleptic : 4 = era: 4 AD
proleptic : 3 = era: 3 AD
proleptic : 2 = era: 2 AD
proleptic : 1 = era: 1 AD
proleptic : 0 = era: 1 BC
proleptic : -1 = era: 2 BC
proleptic : -2 = era: 3 BC
proleptic : -3 = era: 4 BC
proleptic : -4 = era: 5 BC
proleptic : -5 = era: 6 BC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)