从python的时区名称获取UTC偏移量

我怎样才能从时区名称在Python中的UTC偏移?

例如:我有“亚洲/耶路撒冷”,我想得到“+0200”

3 Solutions collect form web for “从python的时区名称获取UTC偏移量”

由于DST(夏令时),结果取决于一年的时间:

import datetime, pytz datetime.datetime.now(pytz.timezone('Asia/Jerusalem')).strftime('%z') # returns '+0300' (because 'now' they have DST) pytz.timezone('Asia/Jerusalem').localize(datetime.datetime(2011,1,1)).strftime('%z') # returns '+0200' (because in January they didn't have DST) 

你有没有尝试过使用pytz项目和utcoffset方法 ?

例如

 >>> import datetime >>> import pytz >>> pacific_now = datetime.datetime.now(pytz.timezone('US/Pacific')) >>> pacific_now.utcoffset().total_seconds()/60/60 -7.0 

从Pythondate时间对象转换为UTC时间戳时遇到类似的问题。 我的date是时区不可知的(非常天真),如时区不起作用。

为了缓解这个问题,我做了我的date时间对象时区知道,然后使用上述的魔法。

 import pytz system_tz = pytz.timezone(constants.TIME_ZONE) localized_time = system_tz.localize(time_of_meeting) fmt = "%Y%m%dT%H%M%S" + 'Z' return localized_time.astimezone(pytz.utc).strftime(fmt) 

在这里, constants.TIME_ZONE是我的持久化对象的默认时区的地方。

希望这可以帮助有人试图将Pythondate时间对象转换为UTC。 一旦转换,请以任何方式格式化。

  • 如何在单个Scrapy项目中为不同的蜘蛛使用不同的pipe道
  • 如何交换python元组(a,b)=(b,a)中的成员在内部工作?
  • 如何将date时间转换为date(在Python中)?
  • 我如何检查我的python对象是否是一个数字?
  • 初学Python的练习?
  • 所有这些OpenCV Python接口有什么不同?
  • Python argparse和bash完成
  • 删除最后一个字符,如果它是一个反斜杠
  • 在Python中序列化JSON时,“TypeError:(Integer)不是JSON序列化”?
  • 如何在Python中获得“语句结束”的行号
  • Pythonic方式结合FOR循环和IF语句