如何使用bash提取特定日期和时间的UTC偏移量?

时间:2018-04-23 13:38:14

标签: linux bash timezone timezone-offset

具体来说,我不希望command 2018-04-01 12:33:45date用于当前的当地时间,但我需要一些非常相似的东西,它应该适用于过去的任何日期。例如,像:

-R

应在当地时间2018年4月1日12:33:45返回UTC偏移量(假设芝加哥为当地时区),例如芝加哥时间。

我进行了广泛的搜索,在那里,可能毫无疑问接近这个,每个人都希望当前的偏移不是特定于日期时间的,因此它不是重复的。

非常感谢

更新

我找到了agendash的内容,了解如何使用date -d "35 days ago" -R命令获取过去日期,然后我将其与{{1}}结合起来以获得与我想要的内容接近的内容:

{{1}}

我可以回去35天并获得UTC偏移。

2 个答案:

答案 0 :(得分:1)

要将特定日期时间转换为UTC,您可以使用以下命令

例如您在问题中提供的日期

2018-04-01 12:33:45

就像下面的

date -u --date=@$(date "+%s" --date="2018-04-01 12:33:45")

其输出类似于Sun Apr 1 10:33:45 UTC 2018

如果您想在此处获得command date,那么您可以为上述命令创建命令别名,或者在脚本中使用上述命令,提供要转换为argument的日期值

答案 1 :(得分:0)

我正在回答基于

的问题
  1. 提交问题后我自己更新。
  2. Nahuel Fouilleul的评论。
  3. 引用我自己的“编辑”:

    “我找到了一些here,它回答了如何使用date命令获取过去的日期,然后我将它与-R结合起来,以获得接近我想要的东西:

    date -d "35 days ago" -R

    我可以回去35天并获得UTC偏移量。“

    这里有Nahuel的评论,“date -d 2018-04-01T12:33:45 -R

    这与我在“编辑”中写的内容一致。 Nahuel的解决方案非常适合我。

    Usman Malik的回答也完美地提供了解决方案。

    总而言之,我的(不完全是)答案将是:

    date -d specific_past_date -R

    其中specific_past_date是我需要UTC偏移的日期,使用我在问题中提到的日期和时间,如果我这样做:

    date -d 2018-04-01T12:33:45 -R

    我从芝加哥得到Sun, 01 Apr 2018 12:33:45 -0500,这意味着2018年4月1日12:33:45芝加哥时间比UTC强<5> 小时。