pymongo 日期类型
mongo中的日期類型,使用ISO格式,例如:ISODate("2012-11-02T07:58:51.718Z")。下面來測試一下:?
?C:\>mongo 127.0.0.1:2222/test
MongoDB shell version: 1.8.3
connecting to: 127.0.0.1:2222/test
type "help" for help
?
neu:PRIMARY> db.t2.insert({mydate:ISODate("2012-11-02T07:58:51.718Z")})
neu:PRIMARY> db.t2.find()
{ "_id" : ObjectId("50937ded0847cf5f01606dae"), "mydate" : ISODate("2012-11-02T07:58:51.718Z") }
日期字符串也支持多種格式
neu:PRIMARY> db.t2.insert({mydate:ISODate("2012-11-02 07:58:51")})neu:PRIMARY> db.t2.insert({mydate:ISODate("20121102 07:58:51")})neu:PRIMARY> db.t2.insert({mydate:ISODate("20121102")})?neu:PRIMARY> db.t2.find(){ "_id" : ObjectId("50937ded0847cf5f01606dae"), "mydate" : ISODate("2012-11-02T07:58:51.718Z") }{ "_id" : ObjectId("509380d22bb20f9946fb9004"), "mydate" : ISODate("2012-11-02T07:58:51Z") }{ "_id" : ObjectId("509381052bb20f9946fb9005"), "mydate" : ISODate("2012-11-02T07:58:51Z") }{ "_id" : ObjectId("509381102bb20f9946fb9006"), "mydate" : ISODate("2012-11-02T00:00:00Z") }?
我們比較一下mongo中的當前時間與系統當前時間:
?
neu:PRIMARY> new Date()
ISODate("2012-11-02T08:13:10.250Z")
neu:PRIMARY> ^Z
bye
?
C:\>date
當前日期: 2012-11-02 星期五
輸入新日期: (年月日)
?
C:\>time
當前時間:?16:13:14.95
輸入新時間:
?
我們看到,mongo中的時間似乎與系統時間相差了8個小時,why?
這是因為mongo中的date類型以UTC(Coordinated Universal Time)存儲,就等于GMT(格林尼治標準時)時間。而系統時間使用的是GMT+0800時間,兩者正好相差8個小時。
?
在mongodb與oracle或sqlserver相互同步數據時,需要注意這一點!
?
如果用python直接讀取mongo中的日期,就會發生錯誤:
>>> import pymongo>>> conn=pymongo.Connection('127.0.0.1',2222)>>> db=conn.test>>> for row in db.t2.find():... ? ? print row['mydate']...2012-11-02 07:58:51.7180002012-11-02 07:58:512012-11-02 07:58:512012-11-02 00:00:002012-11-02 00:00:00??
在python中,與之對應的日期是 datetime.datetime.utcnow(),而不是now(),兩者正好差8個小時:
>>> import datetime?>>> datetime.datetime.utcnow()datetime.datetime(2012, 11, 2,?8, 22, 52, 953000)>>> datetime.datetime.now()datetime.datetime(2012, 11, 2,?16, 22, 58, 218000)??
關于二者的轉換,可以參考這個鏈接:http://www.linuxso.com/linuxbiancheng/12653.html
?
?
?
?
總結
以上是生活随笔為你收集整理的pymongo 日期类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crunch字典生成工具
- 下一篇: Dll注入技术之劫持注入