在 FreeBSD 控制台上获取标准 ISO 8601 格式的当前日期和时间

Bas*_*que 2 freebsd bsd date date-utility

我想在控制台上以标准ISO 8601格式方便地获取当前日期时间:YYYY-MM-DDTHH:MM:SSZ

例如:2019-07-13T01:09:35Z

我知道该date命令显示当前日期时间,但默认情况下不是 ISO 8601 格式。该-I选项以标准格式显示仅日期部分。并-Iseconds显示2019-07-13T01:18:10+00:00. 这很接近,但是:

  • 我更喜欢Z最后的偏移量为零,而不是+00:00.
  • 对于这样一个基本的常见任务,我想要输入更短的内容。

我的问题与此相同,但针对的是 BSD 而不是 Linux(显然)。

Ste*_*ris 5

由于您想要“Z”(GMT),您可以简单地使用格式字符串和文字 T 和 Z 字符来完成

% TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ"
2019-07-13T02:04:16Z
Run Code Online (Sandbox Code Playgroud)

如果您不想每次都输入,可以将其设为函数或脚本

例如

% isotime()
{
  TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ"
}

% isotime
2019-07-13T02:06:42Z
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您需要添加“-u”(UTC),否则您会得到看起来像 UTC 但实际上是您当地时区的日期。所以完整的命令是 `date -u +"%Y-%m-%dT%H:%M:%SZ"` (3认同)