客户会给我发送时间
test['datetime'] = datetime.datetime.now().isoformat()
我的服务器将使用本地时区转换时间
from tzlocal import get_localzone
tz = get_localzone()
datetime =dateutil.parser.parse(data['datetime']).replace(tzinfo=tz)
print "##### strftime #############"
print dateutil.parser.parse(data['datetime']).strftime("%Y-%m-%d %H:%M:%S")
print "##### tzinfo #############"
print dateutil.parser.parse(data['datetime']).replace(tzinfo=tz)
print "###### isoformat #######"
print datetime.datetime.now(tz=tz).isoformat()
输出如下:
客户端:
2015-11-16T15:38:16.286561
服务器:
##### strftime #############
2015-11-16 15:38:16
##### tzinfo #############
2015-11-16 15:38:16.286561+08:06
###### isoformat #######
2015-11-16T15:38:16.729346+08:00
但我检查mongo db中的数据保存有时差:
"datetime" : ISODate("2015-11-16T07:32:28.679Z")
我发现如果我保存datetime.datetime.now(tz=tz).isoformat()
时间没有时间差异
但我保存dateutil.parser.parse(data['datetime']).replace(tzinfo=tz)
会有时差
为什么这个时间差会发生?
答案 0 :(得分:0)
MongoDB默认以UTC格式存储时间,并将任何本地时间表示转换为此形式。这意味着除UTC之外的任何日期时间值都将通过当前时区偏移进行调整。