python时间函数带时区_Python时区转换

这篇博客介绍了如何在Python中将本地时间转换为UTC时间,并进一步转换为不同时区的时间。通过使用datetime和pytz库,可以有效地处理时区转换,避免NonExistentTimeError错误。
摘要由CSDN通过智能技术生成

牛魔王的故事

我发现最好的方法是将感兴趣的“时刻”转换为可识别utc-timezone的datetime对象(在python中,datetime对象不需要时区组件)。然后,您可以使用astimezone转换为感兴趣的时区(参考)。from datetime import datetimeimport pytzutcmoment_naive = datetime.utcnow()utcmoment = utcmoment_naive.replace(tzinfo=pytz.utc)# print "utcmoment_naive: {0}".format(utcmoment_naive) # python 2print("utcmoment_naive: {0}".format(utcmoment_naive))print("utcmoment:       {0}".format(utcmoment))localFormat = "%Y-%m-%d %H:%M:%S"timezones = ['America/Los_Angeles', 'Europe/Madrid', 'America/Puerto_Rico']for tz in timezones:    localDatetime = utcmoment.astimezone(pytz.timezone(tz))    print(localDatetime.strftime(localFormat))# utcmoment_naive: 2017-05-11 17:43:30.802644# utcmoment:       2017-05-11 17:43:30.802644+00:00# 2017-05-11 10:43:30# 2017-05-11 19:43:30# 2017-05-11 13:43:30因此,在当地时区(存在的时间)感兴趣的时刻,您可以像这样将其转换为utc(参考)。localmoment_naive = datetime.strptime('2013-09-06 14:05:10', localFormat)localtimezone = pytz.timezone('Australia/Adelaide')try:    localmoment = localtimezone.localize(localmoment_naive, is_dst=None)    print("Time exists")    utcmoment = localmoment.astimezone(pytz.utc)except pytz.exceptions.NonExistentTimeError as e:    print("NonExistentTimeError")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值