如何在脚本中将日期从Unix时间转换为字符串?

use*_*196 24 bash

要将日期从字符串转换为Unix时间,我可以使用date --date "2012-02-13" +%s.

从Unix时间到字符串,我该怎么做?

mat*_*fee 25

你可以使用date --date @datetime:

[foo@bar ~]$date --date "2012-02-13" +%s
1329055200
[foo@bar ~]$date --date @1329055200
Mon Feb 13 00:00:00 EST 2012
[foo@bar ~]$date --date @1329055200 +"%Y-%m-%d"
2012-02-13
Run Code Online (Sandbox Code Playgroud)

我不知道'@xxxx'在哪里被记录了!

  • 它在信息页面中有记录.请参阅http://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html#Date-input-formats (2认同)
  • 该手册页确实说"日期字符串格式比这里容易记录的更复杂,但在信息文档中有详细描述." (2认同)

gho*_*oti 6

date命令的选项取决于您的操作系统。

在FreeBSD中:

[ghoti@pc ~]$ date -r 1332468005 '+%Y-%m-%d %T'
2012-03-22 22:00:05
Run Code Online (Sandbox Code Playgroud)

在Linux中:

ghoti@wopr$ date -d @1332468005 '+%Y-%m-%d %H:%M:%S'
2012-03-22 22:00:05
Run Code Online (Sandbox Code Playgroud)

在其他操作系统中,我不知道。

如果您想要一种不依赖该date命令的解决方案,则可以使用perl或gawk(如果它们恰好安装在您使用的计算机上)。

ghoti@wopr$ gawk -v when=1332468005 'BEGIN{ print strftime("%Y-%m-%d %T", when); }'
2012-03-22 22:00:05
Run Code Online (Sandbox Code Playgroud)