我有一个包含 Unix 时间和相应时区的大型电子表格。第 1 行第 1 列可能是 1538082000
,第 2 列可能是 America/New_York
,第 2 行可能是 1538083000
和 America/Los_Angeles
。在每种情况下,我都需要采用该时区内某人的时间格式。
例如,在我的 EDT 示例(第 1 行)中,我想要 2018 年 9 月 27 日下午 5:00:00 EDT
,对于第 2 行,我想要 2018 年 9 月 27 日太平洋夏令时间下午 2:16:40
。
当我尝试抓取数据并以对第三方更友好的格式显示数据时,我经常遇到这种情况,但我一直找不到特别好的方法来做到这一点。
最佳答案
使用Arrow :
>>> import arrow
>>> utc = arrow.Arrow.fromtimestamp(1538082000)
>>> conv = utc.to('America/New_York')
>>> conv.format("MMM D, YYYY h:mm:ssA ") + conv.tzname()
结果:2018 年 9 月 27 日 5:00:00PM EDT
对于第二个例子:
>>> from dateutil import tz
>>> t = arrow.Arrow.fromtimestamp(1538083000, tzinfo=tz.gettz("America/Los_Angeles"))
>>> t.format("MMM D, YYYY h:mm:ssA ") + t.tzname()
结果将于太平洋夏令时间 2018 年 9 月 27 日下午 2:16:40
得出。
您可以使用第一种形式的 to
,也可以将 tzinfo
传递给 fromtimestamp
(如第二个示例中所示)。就我个人而言,我认为第一种形式看起来更干净。
关于python - 在Python中以AM/PM格式显示特定时区的unix时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52416332/