有没有一种从Unix命令行将Unix时间戳转换为日期的快速、简单的方法?
date
也许可以工作,只是指定每个元素(月、日、年、小时等)比较笨拙,而且我不知道如何让它正常工作。似乎有一种更简单的方法, - 我错过了什么吗?
发布于 2010-07-15 03:54:35
使用GNU的date
,您可以这样做:
date -d "@$TIMESTAMP"
# date -d @0
Wed Dec 31 19:00:00 EST 1969
(来自:BASH: Convert Unix Timestamp to a Date)
在OS X上,使用date -r
。
date -r "$TIMESTAMP"
或者,使用strftime()
。它不能直接从shell获得,但您可以通过gawk访问它。%c
说明符以与区域设置相关的方式显示时间戳。
echo "$TIMESTAMP" | gawk '{print strftime("%c", $0)}'
# echo 0 | gawk '{print strftime("%c", $0)}'
Wed 31 Dec 1969 07:00:00 PM EST
发布于 2010-07-15 04:01:53
date -d @1278999698 +'%Y-%m-%d %H:%M:%S'
,其中@
后面的数字是以秒为单位的数字
发布于 2013-01-01 09:53:37
此解决方案适用于不支持date -d @
的date版本。它不需要AWK或其他命令。Unix时间戳是自1970年1月1日UTC以来的秒数,因此指定UTC很重要。
date -d '1970-01-01 1357004952 sec UTC'
Mon Dec 31 17:49:12 PST 2012
如果您使用的是Mac,则使用:
date -r 1357004952
获取纪元的命令:
date +%s
1357004952
功劳归于安东:
https://stackoverflow.com/questions/3249827
复制相似问题