繁体   English   中英

蟒蛇。 将datetime对象转换为包含时区的字符串

[英]Python. Convert datetime object to string with timezone included

我有一个日期时间对象:

datetime.datetime(2018, 3, 13, 11, 8, 44, tzinfo=<UTC>)

我需要将此对象转换为这样的字符串

"2018-03-13 16:38:44+05:30"

已经尝试过:1)obj.strftime('%Y-%m-%d%H:%M:%S%Z')

它给出的是'2018-03-13 11:08:44UTC'而不是"2018-03-13 16:38:44+05:30"

2)obj.strftime('%Y-%m-%d%H:%M:%S%z')

它给出的是"2018-03-13 16:38:44+0530"而不是"2018-03-13 16:38:44+05:30"

如何才能做到这一点????

解决方案是使用带或不带参数的datetime.astimezone()方法。 它将完全按照您的期望格式化输出,如以下示例所示:

import datetime
import pytz

obj = datetime.datetime(2018, 3, 13, 11, 8, 44, tzinfo=pytz.utc)

print(obj.astimezone())                                 # date/time with system local timezone
print(obj.astimezone(pytz.timezone('Asia/Calcutta')))   # date/time in Calcutta: 2018-03-13 16:38:44+05:30 (your expected output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM