2017-08-14 104 views
-1

我有一个数据帧的UTC时间列时间,我想在本地时间转换它。我做了这样的代码:datetime.strptime与本地时区

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格式

所以我试图用datetime.strptime()%Z参数:

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

Paris, Madrid是命令datetime.tzname(central)给了我什么。 它不工作,我没有找到任何关于如何使用%Z的解释。

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

回答

0

datetime.strptime()函数与此有点不同。

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

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

正确的代码是:

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