【发布时间】:2021-06-29 19:02:42
【问题描述】:
有一个网站以例如时间的形式提供时区信息。 -07:00。有没有办法可以使用它来本地化 pytz 中的时间戳?
通常我会这样做:
EASTERN_TIMEZONE = pytz.timezone("US/Eastern")
date_in_pacific_time = EASTERN_TIMEZONE.localize(my_date)
其中my_date 是某个日期时间日期。但我不知道如何获取一个数字并从中获取时区,因此我可以将其应用于日期并从中获取时间戳。
这可能是一个 XY 问题,因为我想做的是获取一个日期字符串,如 "2021-04-02T18:30:04-07:00" 并将其转换为 Unix UTC 时间戳。
编辑:
像这样?
listing_date_string = "2021-04-02T18:30:04-07:00"
listing_date_string_datepart = listing_date_string[:19]
listing_date_string_timezone = int(listing_date_string[19:].replace(":00", ""))
d = datetime.datetime.strptime(listing_date_string_datepart, '%Y-%m-%dT%H:%M:%S')
d -= datetime.timedelta(hours=listing_date_string_timezone)
print(int(d.timestamp())) # outputs 1617427804
【问题讨论】:
-
ISO 格式:
%Y-%m-%dT%H:%M:%S%z,所以%z是您所需要的。 -
@Simon 好像不匹配,
ValueError: time data '2021-04-02T18:30:04-07:00' does not match format '%Y-%m-%dT%H:%M:%S%z' -
你的python版本是多少?
标签: python date datetime timezone pytz