有没有命令可以将日期设置为第 9 年而不是 2021 年?

有没有命令可以将日期设置为第 9 年而不是 2021 年?

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 月之后的所有日期作为该月的一部分)。也许您可以调整该代码以适合您想要的表示?

相关内容