![如何使用我自己的日历设置定义自定义语言环境?](https://linux22.com/image/1360986/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E6%88%91%E8%87%AA%E5%B7%B1%E7%9A%84%E6%97%A5%E5%8E%86%E8%AE%BE%E7%BD%AE%E5%AE%9A%E4%B9%89%E8%87%AA%E5%AE%9A%E4%B9%89%E8%AF%AD%E8%A8%80%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
我想定义一个自定义语言环境,其中包含我自己的日历设置。在此语言环境中,我们将指定年份设置为第一年。例如,如果我定义 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格式。
我确信你不想这么做。