有没有一种快速的单行方式将Unix时间戳转换为Unix命令行的日期?
“日期”可能有效,除了指定每个元素(月,日,年,小时等)相当尴尬,我无法弄清楚如何使其正常工作。 似乎可能会有一个更简单的方法 - 我错过了什么吗?
Is there a quick, one-liner way to convert a Unix timestamp to a date from the Unix command line?
date might work, except it's rather awkward to specify each element (month, day, year, hour, etc.), and I can't figure out how to get it to work properly. It seems like there might be an easier way - am I missing something?
最满意答案
您可以使用strftime()格式化Unix时间戳。 它不是直接从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另外,GNU的date语法更简单:
date -d @$TIMESTAMP # date -d @0 Wed Dec 31 19:00:00 EST 1969(从: BASH:将Unix时间戳转换为日期 )
With GNU's date you can do:
date -d "@$TIMESTAMP" # date -d @0 Wed Dec 31 19:00:00 EST 1969(From: BASH: Convert Unix Timestamp to a Date)
On OS X, use date -r.
date -r "$TIMESTAMP"Alternatively, use strftime(). It's not available directly from the shell, but you can access it via gawk. The %c specifier displays the timestamp in a locale-dependent manner.
echo "$TIMESTAMP" | gawk '{print strftime("%c", $0)}' # echo 0 | gawk '{print strftime("%c", $0)}' Wed 31 Dec 1969 07:00:00 PM EST更多推荐
发布评论