first_weekday区域设置中的设置

first_weekday区域设置中的设置

我试图弄清楚为什么我不能将任何区域设置与星期一设置为一周的第一天。

安装的区域设置:

francescos@Thinkpad-T420:~$ locale -a
C
C.UTF-8
en_GB.utf8
en_IE.utf8
en_US.utf8
it_IT.utf8
POSIX

虽然这看起来不错:

francescos@Thinkpad-T420:~$ LC_TIME="en_US.UTF-8" cal
    January 2019      
Su Mo Tu We Th Fr Sa  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31    

这看起来很奇怪,因为它应该从星期一开始:

francescos@Thinkpad-T420:~$ LC_TIME="en_IE.UTF-8" cal
    January 2019      
Su Mo Tu We Th Fr Sa  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31 

最后的惊喜,即使是这个看起来也非常错误:

francescos@Thinkpad-T420:~$ LC_TIME="it_IT.UTF-8" cal
    Gennaio 2019      
do lu ma me gi ve sa  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31  

我已经检查了文件@ /usr/share/i18n/locales/,它们看起来不错(就像它们正确地指定了一周应该从哪一天开始,星期一=2)。

我的 /etc/default/locale 看起来像这样:

#  File generated by update-locale
LANG=en_IE.UTF-8
LANGUAGE="en_IE:en"
LC_MONETARY=it_IT.UTF-8
LC_MEASUREMENT=it_IT.UTF-8
LC_NUMERIC=it_IT.UTF-8
LC_PAPER=it_IT.UTF-8
LC_TIME=en_IE.UTF-8

这是“locale -a”的输出

francescos@Thinkpad-T420:~$ locale -a
C
C.UTF-8
en_GB.utf8
en_IE.utf8
en_US.utf8
it_IT.utf8
POSIX
francescos@Thinkpad-T420:~$ locale
LANG=en_IE.utf8
LANGUAGE=en_IE:en
LC_CTYPE="en_IE.utf8"
LC_NUMERIC=it_IT.UTF-8
LC_TIME=en_IE.UTF-8
LC_COLLATE="en_IE.utf8"
LC_MONETARY=it_IT.UTF-8
LC_MESSAGES="en_IE.utf8"
LC_PAPER=it_IT.UTF-8
LC_NAME="en_IE.utf8"
LC_ADDRESS="en_IE.utf8"
LC_TELEPHONE="en_IE.utf8"
LC_MEASUREMENT=it_IT.UTF-8
LC_IDENTIFICATION="en_IE.utf8"
LC_ALL=

我已经重新生成了语言环境并重新启动了系统。

答案1

您需要将时间显示的区域设置设置为英国区域设置,LC_TIME="en_GB.UTF-8"以使日历从星期一开始。
你可以看看那个帖子里的配置这里

/etc/default/locale根据您的系统进行设置。/ect/locale.conf

答案2

first_weekday区域设置中的设置

首先,确定正在使用的时间区域设置。中的系统范围设置/etc/default/locale可能会也可能不会被覆盖~/.pam_environment

$ cat ~/.pam_environment
LC_TIME=en_IE.UTF-8

此处,该区域设置en_IE.UTF-8似乎正在使用中。现在,编辑区域设置来源具有管理员权限的文件。这里使用了编辑器vim,但是可以用nano.

$ sudo vim /usr/share/i18n/locales/en_IE

在分隔符之前添加以下行END LC_TIME并保存修改后的区域设置源文件。

first_weekday  2

有些还建议添加first_workday 2.然而,在我的系统上这是没有必要的。

最后,使用以下命令重新生成区域设置文件:

$ sudo locale-gen

注销并再次登录以使此更改生效。

答案3

尝试cal -m或者cal --monday,看看man cal

相关内容