具有本地时区的datetime.strptime

时间:2017-08-14 09:40:43

标签: python-3.x datetime timezone strptime localtime

我在数据帧中有一个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的任何解释。

如果您有任何解释,请帮助我。

1 个答案:

答案 0 :(得分:0)

datetime.strptime()函数的工作方式略有不同。

第一个参数是带有时间信息的字符串,第二个参数是某种类型的格式,它允许函数将字符串转换为日期时间对象。

'.%f Paris, Madrid'使函数认为这些单词出现在字符串中,因此当格式化和字符串不匹配时,错误会上升。

正确的代码是:

datetime.strptime(central,'%Y-%m-%d %H:%M:%S%z')