如何在 Ubuntu 18.04.4 LTS 上将系统范围的日期和时间格式更改为 ISO 8601 YYYY-MM-DD hh:mm:ss 格式?

5 gui indicator date

我正在使用 Ubuntu 18.04.4 LTS 和 GNOME DE,我想将系统范围内的日期和时间格式更改为 ISO 8601 格式,特别是日期为 YYYY-MM-DD,时间为 hh:mm:ss。

我怎样才能做到这一点?

ΤΖΩ*_*ΙΟΥ 1

至少在 Ubuntu 23.04 中(可能在 Ubuntu 的早期版本中,也可能在 Debian 中;我记得它在几年前工作过,但 ISTR 有一段时间不再如此)可以设置

\n
export LC_TIME=en_DK.UTF-8 # note that en_DK.utf8 works too\n
Run Code Online (Sandbox Code Playgroud)\n

并从区域设置感知程序中获取所需的行为:

\n
$ date\n\xce\x94\xce\xb5\xcf\x85 11 \xce\xa3\xce\xb5\xcf\x80 2023 01:59:09 \xcf\x80\xce\xbc EEST\n$ LC_TIME=en_DK.utf8 date\n2023-09-11T01:59:17 EEST\n
Run Code Online (Sandbox Code Playgroud)\n


WU-*_*ANG 0

作为参考,您可能需要首先运行这些命令,也许将终端中的输出保留在一边:

localectl status
locale
locale -ck d_t_fmt
locale -ck d_fmt
locale -ck t_fmt
Run Code Online (Sandbox Code Playgroud)

然后在另一个终端cd /usr/share/i18n/locales

找到您在目录中使用的区域设置...
对我来说是 en_US。
将该区域设置定义文件复制到您要使用的 custom_name 中。

sudo cp en_US my_en_US

使用您最喜欢的编辑器,使用所需的日期格式编辑自定义区域设置定义文件。OP 希望他的日期/时间采用系统范围的格式...系统上有不止一种日期/时间格式,因此如果您希望涵盖所有内容,您将在此处进行大量格式化。IE。日期、日期时间、时间、AM/PM 格式的时间、date命令的日期...(如您将在定义文件中看到的)

我只想在这里说明以上内容之一......命令的日期格式date

sudo vi my_en_US

转到显示“date_fmt”的行,将格式编辑为所需的格式。

date_fmt "%Y-%m-%d %H:%M:%S"

注意:我读过一些说明,说你用 Unicode 值输入此格式,而不是 ex) "<u0025><u0059> 等,等等"....但由于在这个版本的 ubuntu 中它们不是这样,所以我假设您可以只使用百分比编码...如果您的文件具有 Unicode 格式,您可以采用百分比格式获取所需的日期/时间字符串,并通过 hexdump 运行它以获得 Unicode 等效项... echo -n "%Y-%m-%d %H:%M:%S" | hexdump或使用此站点https://www.branah.com/unicode-converter

保存文件并退出...编译您的区域设置定义文件并生成新的区域设置
sudo localedef -f UTF-8 -i my_en_US MY_en.UTF-8

有说明说将环境变量添加到 /etc/environment 或 /bashrc 等...但我所做的只是sudo localectl set-locale LC_TIME=MY_en.UTF-8

当我运行命令时,我立即就完成了date。但你可能必须注销或重新启动,我不确定。随着时间的推移,要重新启动的服务已经发生了变化(根据互联网的其余部分),因此很难破译。

您可以再次运行帖子开头的命令进行比较/故障排除。