【发布时间】:2016-07-05 21:34:57
【问题描述】:
有没有办法通过管道传输包含一堆 epoch/unix 时间戳值的内容,并查看将日期时间值转换为人类可读形式的文本,例如:
$ cat data.txt
{
"id": "20a68337-922b-4db0-85d6-719c97e0ee83",
"published_at": 1457427709695,
"expires": 1458346544
}
$ cat data.txt | convert-datetimes
{
"id": "20a68337-922b-4db0-85d6-719c97e0ee83",
"published_at": Tue, 08 Mar 2016 09:01:49.695 GMT,
"expires": Wed, 18 May 2016 23:42:21 GMT
}
【问题讨论】:
-
虽然它们有很多共同点,但这种 Q 清楚地突出了(在一方面)
linux、osX和unix之间的差异。如果你能把你的 Q 减少到一个版本,你会得到一个更好的答案。如果您需要跨平台的解决方案,请注明 AND 一如既往,最好向我们展示您的尝试,以便我们帮助纠正您的理解。您可以在所有平台上使用新的gawk吗?这将简化事情(或 perl 等)。祝你好运。 -
@shellter 理想情况下,我很想找到一个既适用于 OS X 又适用于 linux 的解决方案,因为我的主机是 Mac,我经常通过 ssh 连接到不同的 linux 机器。
-
时间戳需要覆盖什么时间范围? 2000 年前? 1970 年前? 1904 年以前? 2038 年后?有没有办法识别哪些 13 位数字是自纪元以来的时间(以毫秒为单位),哪些是 13 位 ISBN 数字(或者,在过去,是 13 位信用卡号)?
-
@JonathanLeffler ehhhrm.. 我对复杂的时间戳格式不是很熟悉,我想我需要一些类似于 www.epochconverter.com 的东西
-
date -d @1457427709(Linux) 或date -r 1457427709(OS X) 可用于将 seconds-since-the-epoch 转换为格式化时间。如果它是自时代以来的毫秒数,那么您需要单独添加毫秒数。
标签: linux macos datetime unix command-line