【问题标题】:Convert date string to unix timestamp without "date -d" in a shell script在shell脚本中将日期字符串转换为没有“date -d”的unix时间戳
【发布时间】:2014-08-22 01:29:16
【问题描述】:

在这个问题上我已经把头撞到墙上一段时间了。

我的 (ksh) 脚本中有一个日期字符串。不是当前时间,是任意时间。

如何将该日期字符串转换为 Unix 时间戳?我正在开发 SunOS 5.10 和 AIX,它们没有 date -d 选项,也没有 MacOS date -j -f 选项。

我只需要在我的代码中的一个地方进行这种转换,所以理想情况下我想在一行中进行,但如果我必须创建一个函数,那就这样吧

我已经使用 Python 和 Perl 来实现这一点。 Python 是最接近的,但我无法让它考虑时区,我真的很想要。任何帮助将不胜感激。

【问题讨论】:

  • 您好想澄清一下日期是否像 Fri Aug 22 11:22:16 IST 2014 您想转换为像 Aug 22 11:22:16 这样的时间戳。对吗?
  • 不,如果日期类似于“08/22/2014 @ 1:24pm”,我想将其转换为 Unix 纪元时间 1408713875。
  • 澄清一下,我的日期字符串并不是严格意义上的“08/22/2014 @ 1:24pm”,我将时间作为参数,我知道它是针对今天的日期,但重点是我可以提取出单独的部分,如年、月、日、小时等。

标签: unix ksh unix-timestamp


【解决方案1】:

我失去了之前尝试用 Python 做的任何事情,但回头看我找到了解决方案:

python -c 'import datetime, time;print time.mktime(datetime.datetime.strptime("08/22/2014/16", "%m/%d/%Y/%H").timetuple())'

此特定命令输出 1408737600,即东海岸 2014 年 8 月 22 日下午 4 点。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2019-07-30
    • 2012-06-23
    • 2011-09-23
    • 1970-01-01
    • 2016-12-18
    • 2022-01-21
    • 2012-09-01
    相关资源
    最近更新 更多