昨天被 @聞其詳 问起 glibc 对日本平成XX年的纪年支持情况(感谢 @farseerfc 老师),发现 glibc localedata 中并未包括民国纪年支持。在查询文档后稍微鼓捣了一下,简单实现了这个功能:
$ LC_TIME=zh_TW.UTF-8 date +%EY
民國107年
$ LC_TIME=zh_TW.UTF-8 date +%EY --date="1912/4/3"
民國元年
$ LC_TIME=zh_TW.UTF-8 date +%EY --date="1913/4/3"
民國2年
$ LC_TIME=zh_TW.UTF-8 date +%EY --date="1911/4/3"
民前1年
$ LC_TIME=zh_TW.UTF-8 date +%EY --date="1900/4/3"
民前12年
修改方法:
编辑 /usr/share/i18n/locales/zh_TW 文件,找到 END LC_TIME,在它之前加入这样三行:
era "+:2:1913//01//01:+*:民國:%EC%Ey年";/
"+:1:1912//01//01:1912//12//31:民國:%EC元年";/
"+:1:1911//12//31:-*:民前:%EC%Ey年"
保存后重新 locale-gen 即可。
Continue reading 为 glibc localedata 添加民国纪年支持