bash - 如何在 UNIX 中将 "19-FEB-12"之类的字符串转换为纪元日期

标签 bash unix date unix-timestamp

在 UNIX 中如何将日期字符串转换为纪元毫秒:

19-FEB-12
16-FEB-12
05-AUG-09

我需要这个来将这些日期与服务器上的当前时间进行比较。

最佳答案

将日期转换为自纪元以来的秒数:

date --date="19-FEB-12" +%s

当前纪元:

date +%s

所以,因为你的日期是过去的:

NOW=`date +%s`
THEN=`date --date="19-FEB-12" +%s`

let DIFF=$NOW-$THEN
echo "The difference is: $DIFF"

使用 BSD 的 date 命令,您需要

$ date -j -f "%d-%B-%y" 19-FEB-12 +%s

与 GNU date 的区别:

  1. -j 阻止 date 尝试设置时钟
  2. 输入格式必须用-f明确设置
  3. 输入日期是一个常规参数,而不是一个选项(即 -d)
  4. 当日期没有指定时间时,使用当前时间代替 午夜。

关于bash - 如何在 UNIX 中将 "19-FEB-12"之类的字符串转换为纪元日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805591/

相关文章:

javascript - 无法使用 Google Apps 脚本访问 Google 表格中的持续时间值

java - 如何创建带有可选时间参数的 DateFormat?

python - 在 Python 中打开运行相同程序的终端

linux - 无法获得对 dbus-send 的任何回复

linux - 连接丢失后,可运行的 jar 文件会在主机上运行吗?如果是,如何运行?

linux - 使用 bash 递归查找具有相同名称但实际上不同的文件的最佳方法?

bash - 'lsb_release -a' 在 bash 脚本中使用它时打印额外的一行

Bash 将文件转换为小写并排序

c - sigaction 如何既是结构又是函数?

java - Android 中解析日期时出现解析错误