保存到mongo db时的时差

时间:2015-11-16 07:49:39

标签: python mongodb datetime

客户会给我发送时间

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)会有时差

为什么这个时间差会发生?

1 个答案:

答案 0 :(得分:0)

MongoDB默认以UTC格式存储时间,并将任何本地时间表示转换为此形式。这意味着除UTC之外的任何日期时间值都将通过当前时区偏移进行调整。

相关问题