【问题标题】:bash: query timestamp of UTC date on BSDbash:在 BSD 上查询 UTC 日期的时间戳
【发布时间】:2019-10-14 23:31:18
【问题描述】:

我想要得到的是

$ xxx 2019-10-11 <= insert your command
1570752000

输出是 2019 年 10 月 11 日 00:00:00 UTC 的时间戳。我在 gnu 中找到了一个很好的方法,但在 bsd 中没有

【问题讨论】:

  • 注意“bash”标签是无关紧要的。

标签: bash bsd


【解决方案1】:

这应该可行:

date -j -f '%F %T %Z' '2019-10-11 00:00:00 U' '+%s'

-j 用于试运行;即它防止date 更改系统日期和时间,
-f 用于指定输入格式,
+%s 用于将给定日期转换为自纪元以来的秒数。

【讨论】:

  • 我在 osx 上试过你的命令。输出似乎不对(master) * [origin ] $ date -j -f '%Y-%m-%d' '2019-10-11' '+%s' 1570837643 并且每次给出不同的数字
【解决方案2】:

在 NetBSD 上可以使用:

TZ=GMT0 date -d '2019-10-11 00:00:00' '+%s'

注意使用TZ 环境变量来指定输入时区,而不是尝试从输入中解析它(尽管可能有可能从输入中解析出更正确格式化的时区,但这样就剩下了输出应该格式化在哪个时区的问题)。

在 MacOS 上,您可以尝试类似于 Oguz 建议的方法:

TZ=GMT0 date -j -f '%Y-%m-%d %H:%M:%S' '2019-10-11 00:00:00' '+%s'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 2022-10-07
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多