datetime.strptime 与当地时区

datetime.strptime with local time zone

我在数据框中有一个 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.

的解释

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

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

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

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

正确的代码是:

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