从纪元发送,1 年前在 MacOS/BSD 上?

Sends from epoch, for 1 year ago on MacOS / BSD?

我正在尝试计算自纪元以来的秒数,在 MacOS BSD 上使用日期。

我可以获得一年前的日期字符串:

$ date -v -1y

Tue Apr 21 10:44:47 EST 2020

...但我不知道如何将它转换为自 Epoch 以来的秒数。有什么建议吗?

添加 +%s 以告诉它以纪元以来的秒数打印日期时间:

date -v -1y +%s

+ 是设置输出格式的 date 选项,%sstrftime “自纪元以来的秒数”格式。

可移植性说明:虽然 +%s 部分非常标准且可移植(尽管 POSIX 实际上并不需要 %s 格式),但 -v -1y 部分是非常不便携。使用 GNU 日期(例如,在大多数 Linux 上),你会使用类似 --date='1 year ago' 的东西。在 NetBSD 上,-d '1 year ago' 有效。检查您的本地 man 页面以了解您的系统支持什么。