为什么 NodaTime.LocalDate.MinIsoValue 的年份是“9999”

Why does NodaTime.LocalDate.MinIsoValue have a year "9999"

静态 属性 NodaTime.LocalDate.MinIsoValue 的值为 9999-01-01 而我希望它具有与 default(LocalDate) 相同的值,即 0001-01-01 .这个值是有原因的还是错误?

我使用的是 NodaTime 2.4.4 版。

使用模式 "yy" or "yyyy" outputs years of era not the year which is -9998 in this case. LocalDate.MinIsoValue 格式化本地日期源自公元前时代。您使用的格式不包括时代。您可以在自定义格式中使用 "g""gg" 来包含纪元。

var def = default(LocalDate);
var min = LocalDate.MinIsoValue;
Console.WriteLine("def: " + def.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
Console.WriteLine("def with era: " + def.ToString("yyyy-MM-dd gg", CultureInfo.InvariantCulture));
Console.WriteLine("def.Year: " + def.Year);
Console.WriteLine("def.YearOfEra: " + def.YearOfEra);
Console.WriteLine("min: " + min.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture));
Console.WriteLine("min with era: " + min.ToString("yyyy-MM-dd gg", CultureInfo.InvariantCulture));
Console.WriteLine("min.Year: " + min.Year);
Console.WriteLine("min.YearOfEra: " + min.YearOfEra);
Console.WriteLine("min < def: " + (min < def));

def: 0001-01-01
def with era: 0001-01-01 A.D.
def.Year: 1
def.YearOfEra: 1
min: 9999-01-01
min with era: 9999-01-01 B.C.
min.Year: -9998
min.YearOfEra: 9999
min < def: True