我在数据帧中有一个UTC时间的列时间,我想在本地时间转换它。我做了这段代码:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
# utc = datetime.utcnow()
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S')
utc = utc.replace(tzinfo=from_zone)
# Convert time zone
central = utc.astimezone(to_zone)
然后我将它保存在一个字符串的文本文件中。 所以字符串有这种格式:
2011-01-21 02:37:21 + 02:00
然后我在另一个程序中加载文本文件,我想用日期时间格式转换为本地时区
所以我尝试将datetime.strptime()
与%Z
参数一起使用:
datetime.strptime(central,'%Y-%m-%d %H:%M:%S.%f Paris, Madrid')
Paris, Madrid
是命令datetime.tzname(central)
给我的。
它没有用,我没有找到关于如何使用%Z
的任何解释。
如果您有任何解释,请帮助我。
答案 0 :(得分:0)
datetime.strptime()
函数的工作方式略有不同。
第一个参数是带有时间信息的字符串,第二个参数是某种类型的格式,它允许函数将字符串转换为日期时间对象。
'.%f Paris, Madrid'
使函数认为这些单词出现在字符串中,因此当格式化和字符串不匹配时,错误会上升。
正确的代码是:
datetime.strptime(central,'%Y-%m-%d %H:%M:%S%z')