linux - 将 ISO 日期转换为自 linux bash 纪元以来的秒数

标签 linux bash date timezone epoch

我有一个 ISO 格式的日期 YYYY-MM-DDTHH:SS(例如 2014-02-14T12:30)。我想在 linux bash 中仅使用 date 命令在自纪元以来的几秒钟内转换它。

所有日期均指 UTC 语言环境。

我知道这个问题很容易重复...有数十亿个关于将日期从一种格式转换为另一种格式的问题,但我找不到我的特定场景

谢谢你...

最佳答案

使用 GNU 日期(来自 GNU coreutils 包),使用 -d 指定要解析的日期,使用 %s

指定从纪元开始的秒数
$ date -d"2014-02-14T12:30" +%s
1392381000

请注意,这会将要解析的日期解释为您的本地时区。如果您希望 date 使用特定时区,则必须通过变量 TZ(它更改 date 的默认时区)或在日期中指定字符串。对于 UTC:

$ TZ=UTC date -d"2014-02-14T12:30" +%s
1392381000

或者在字符串中,根据 ISO 8601:

$ date -d"2014-02-14T12:30Z" +%s
1392381000

参见 ISO 8601 on Wikipedia了解如何在日期字符串中指定其他时区。

关于linux - 将 ISO 日期转换为自 linux bash 纪元以来的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778251/

相关文章:

linux - BIOS总是跳到第一扇区(512B),为什么?这是某种BIOS限制吗?

bash - 使用与号 (&) 在后台运行子进程时,运行 bash 脚本不会返回到终端

php - 从 PHP 中使用 sudo 运行 shell 脚本

python - 在 for 循环中更改脚本执行后

ruby-on-rails - Rails : Set config. time_zone 到服务器的时区?

javascript - Safari 日期差异给出了 nan

mysql - Debian 找不到文件但显示该文件

linux - 乌类图12.04 : Can't enter console after running update manager

linux - 在 linux 系统调用中查找用户名

mysql - 使用 MySQL 对最近的日期进行排序