2021 年对我来说是正确的第 9 年。
当我使用时:
sudo date --set="9-1-29 00:17:00.990"
我明白了
date: cannot set date: Invalid argument
还有其他方法可以将年份设置为 9 吗?
答案1
Linux 系统不能将其系统日期设置为早于UNIX 时代,即 1970 年 1 月 1 日。
答案2
不可以。Linux 中的日期是从 开始设置的00:00:00 UTC on 1 January 1970
。您无法设置该时间/日期之前的日期。
答案3
根据您在评论中的澄清,听起来您主要对时间的呈现感兴趣,而不是将时钟设置为世界上大多数人使用的日历中的公元 9 年。
Linux 内核使用的时间格式与日期和时间的表示没有直接关系。相反,它表示时间为自时代按照公历,这是 1970 年 1 月 1 日。
如果我们使用您的日历表示,那么纪元将是 -42 年 1 月 1 日。将内核time_t
值添加到此日期将为您提供日历表示中的相应日期。
许多程序依赖标准 C 库中的例程将内核时间值转换为常见的公历值。改变这些程序工作方式的一种可能方法是使用LD_PRELOAD
环境变量为这些例程注入替换,以产生所需的输出。
事实上,这正是sdate
包裹在 Ubuntu 中确实如此,尽管这是为了幽默(例如,在 COVID-19 模式下运行时,显示 2020 年 3 月之后的所有日期作为该月的一部分)。也许您可以调整该代码以适合您想要的表示?