考虑 posix 时间戳列表
posix_times = [1490750889, 1490751209, 1490751569]
我想将数组中的每个元素转换为包含美国/太平洋时区本地日期和时间的文本字符串:
["3/28/2017 18:28:09", "3/28/2017 18:33:29", "3/28/2017 18:39:29"]
需要最少包导入的最简单方法是什么?
Converting unix timestamp string to readable date in Python中解决了一个相关问题,该问题提供了例如以下形式的解决方案:
posix_time = 1490750889
datetime.datetime.utcfromtimestamp(posix_time).strftime('%Y-%m-%dT%H:%M:%SZ')
它不提供将这个时间转换为另一个时区的显式能力。此外,这种方法似乎不适用于列表,并且需要 for 循环/列表理解。
您可以将 UNIX 时间戳转换为datetime
对象,然后使用其strftime
方法对其进行格式化。但是,这会给您一个不知道时区的日期时间。为了使其时区感知,您需要从中获取时区pytz
并使用该localize
方法:
from datetime import datetime
from pytz import timezone
# ...
def format_time(time, tz):
localized = tz.localize(datetime.fromtimestamp(time))
return localized.strftime('%d/%m/%Y %H:%M:%S')
us_pacific = timezone('US/Pacific')
dates = map(lambda t: format_time(t, us_pacific), posix_times)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句