【发布时间】:2010-10-16 14:57:33
【问题描述】:
在awk中,有没有办法将时间格式从“2010-10-08 00:00:01”转换为1286467201
使用命令“日期”
$ 日期 +%s -d '2010-10-08 00:00:01'
1286467201
【问题讨论】:
在awk中,有没有办法将时间格式从“2010-10-08 00:00:01”转换为1286467201
使用命令“日期”
$ 日期 +%s -d '2010-10-08 00:00:01'
1286467201
【问题讨论】:
GNU awk 有一个 mktime 函数可以完成这项工作。但是,了解时区至关重要。字符串“2010-10-08 00:00:01”不包含足够的信息来定义特定时间。如果您假设它是 UTC,您可以这样做:
$ echo 2010-10-08 00:00:01 | \
TZ=UTC gawk '{ tstr=$1" "$2; gsub(/[\-:]/, " ", tstr); print mktime(tstr); }'
1286496001
如果您不指定 TZ 变量,您最终会得到服务器的时区(无论如何应该是 UTC,但是很多人在服务器上使用本地时间,所以这不是一个安全的假设)。
您可以通过稍微修改 date 命令来获取 UTC 输出:
$ date +%s -u -d '2010-10-08 00:00:01'
【讨论】: