年份和年代有什么区别?
What is the difference between year and year-of-era?
DateTimeFormatter
class 文档为年份和 y
年份定义了单独的符号 u
:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
year 和 year-of-era 有什么区别?
答案就在 IsoChronology
的文档中
- era - 有两个时代,'Current Era' (CE) 和 'Before Current Era' (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));
}
输出:
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
DateTimeFormatter
class 文档为年份和 y
年份定义了单独的符号 u
:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#patterns
year 和 year-of-era 有什么区别?
答案就在 IsoChronology
的文档中- era - 有两个时代,'Current Era' (CE) 和 'Before Current Era' (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));
}
输出:
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