如何从命令行获取 UNIX 时间戳的格式化日期

如何从命令行获取 UNIX 时间戳的格式化日期

我有一个 UNIX 时间戳,我想获取date与该时间戳对应的格式化日期(如 的输出)。

到目前为止我的尝试:

$ date +%s
1282367908
$ date -d 1282367908
date: invalid date `1282367908'
$ date -d +1282367908
date: invalid date `+1282367908'
$ date +%s -d +1282367908
date: invalid date `+1282367908'

我希望能够得到如下输出:

$ TZ=UTC somecommand 1282368345
Sat Aug 21 05:25:45 UTC 2010

答案1

在 Mac OS X 和 BSD 上:

$ date -r 1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -r 1282368345 +%Y-%m-%d
2010-08-21

使用 GNU 核心工具(您必须为此挖掘信息文件):

$ date -d @1282368345
Sat Aug 21 07:25:45 CEST 2010
$ date -d @1282368345 --rfc-3339=date
2010-08-21

无论是添加-u(标准)选项,还是传递TZ=UTC0环境变量以获取 UTC 日期(TZ=UTC0 定义以 UTC 偏移 0调用的时区,而(没有偏移) 的UTC行为未指定(尽管在大多数系统上会引用也以 UTC 偏移 0 调用的系统定义时区)。TZ=UTCUTC

答案2

经过一番谷歌搜索后,我找到了仅使用命令来完成此操作的方法date

$ date --date "Jan 1, 1970 00:00:00 +0000 + 1282367908 seconds"
Sat Aug 21 09:18:28 MSD 2010

答案3

这个 perl 一行代码可以做到这一点:

$ perl -e 'print scalar localtime $ARGV[0]' 1282367908
Sat Aug 21 09:18:28 2010

答案4

在 osx 上,采用 UTC

date -r "1475737200" -u

相关内容