0
當我將使用Mongoid的DateTime字段存儲到MongoDB時,我遇到了一個奇怪的問題。基於從Ruby端的東西從表面上看,看行不行:MongoDB和存儲日期時間字段
irb(main):002:0> dt=DateTime.strptime("12/02/13 13:25:21", "%m/%d/%Y %H:%M:%S")
=> #<DateTime: 0013-12-02T13:25:21+00:00 ((1726142j,48321s,0n),+0s,2299161j)>
irb(main):003:0> dt.day
=> 2
irb(main):004:0> dt.month
=> 12
irb(main):005:0> dt.year
=> 13
irb(main):006:0> dt.hour
=> 13
irb(main):007:0> dt.minute
=> 25
irb(main):008:0> dt.second
=> 21
現在,當我保存這個使用Mongoid MongoDB中,它被存儲類似如下:
class Foo
include Mongoid::Document
include Mongoid::Timestamps
field :datetime, type: DateTime
def set_stuff_up
self.datetime = DateTime.strptime("12/02/13 13:25:21", "%m/%d/%Y %H:%M:%S")
end
end
當我取回這從數據庫,這就是問題發生的地方:
> db.foos.findOne().datetime
ISODate("0013-11-30T13:25:21Z")
> db.foos.findOne().datetime.getMonth()
10
> db.foos.findOne().datetime.getDay()
6
> db.foos.findOne().datetime.getYear()
-1887
結果在Ruby的結尾處類似地傾斜。利用我findOne()
檢索這裏的文件是罰款的方式,因爲只有一個集合中的文件:
> db.foos.find().size()
1
好眼力。謝謝。 – randombits