【问题标题】:Strange behavior for the date() function linux [duplicate]date() 函数linux的奇怪行为[重复]
【发布时间】:2015-05-11 14:50:47
【问题描述】:

我在使用 bash 时发现 date() 函数有一个奇怪的行为。 当我使用 date -d "2008-10-12 +1 days" 时,日期函数返回

日期:无效日期‘2008-10-12 +1days’

尝试时甚至返回错误:

日期 -d "2008-10-12" --> 日期:无效日期‘2008-10-12’

但是,它适用于:

date -d "2008-10-13 +1days" --> 2008 年 10 月 14 日星期二 00:00:00 CLST

date -d "2008-10-11 +1days" --> 2008 年 10 月 12 日星期日 01:00:00 CLST

date -d "2007-10-12 +1days" --> 2007 年 10 月 13 日星期六 00:00:00 CLT

...等等

似乎 date() 不能识别“只是”2008-10-12。它是一个错误吗?我做错了吗?

我正在使用 CENTOS 7

一切顺利

【问题讨论】:

  • @aergistal,是的,可能就是这样,我还要说这是夏令时问题。
  • 通过将时间从 YYYY/MM/DD 更改为秒来解决问题...这样可以避免出现夏令时问题,具体取决于您所在的区域。

标签: bash date


【解决方案1】:

在 RHEL 7 中,许多命令发生了许多变化。要更改之前的时间和日期,我们曾经使用date 命令,现在我们需要使用timedatectl 命令(首选)。

http://www.freedesktop.org/software/systemd/man/timedatectl.html

因此,由于有一个包含更多功能的最新命令,他们可能会限制它(不确定)。但从这个版本开始,我一直在使用timedatectl 命令,这真的很棒。

【讨论】:

  • 非常感谢您的 cmets .. 这对我发现计算机的区域很有帮助...之后我可以使用 zdump 来查看问题何时出现...跨度>
猜你喜欢
  • 2018-11-22
  • 2016-01-26
  • 1970-01-01
  • 2021-02-21
  • 2015-10-24
  • 2021-07-04
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多