我想定义一个自定义语言环境,其中包含我自己的日历设置。在此语言环境中,我们将指定年份设置为第一年。例如,如果我定义 en_UNIX.UTF-8,我想将公元 1970 年设置为公元 1 年,将公元 1970 年设置为公元 2 年。
在 Linux/BSD 中有什么方法可以做到这一点?我查看了系统的语言环境文件,发现它们只定义了一周的第一天、货币等等,除了日历的第一年...
答案1
公历的使用在 glibc 中是硬编码的:https://github.com/rbdixon/glibc/blob/master/time/offtime.c#L58
因此,任何使用 C 库(“系统”)例程 -gmtime_r
等等localtime_r
- 在纪元以来的秒数和细分日期格式之间进行转换的东西,都将遵循“标准”日历(一年 365 天、公历闰年公式、每周 7 天……)。
对于您自己编写的代码,您可以使用ICU项目的库,并在Unicode 通用区域数据储存库XML格式。
我确信你不想这么做。