Bạn có thể chuyển đổi BSON ::Timestamp
tới BSON ::ByteBuffer
sử dụng #to_bson
phương pháp.
Sau đó, bạn có thể chuyển đổi BSON ::ByteBuffer
thành một số nguyên ( # get_int64
) đại diện cho số mili giây kể từ kỷ nguyên.
Sau đó, sử dụng Time ::at
để chuyển đổi số nguyên đó thành Time
đối tượng
date_time = DateTime.new(2021,8,30)
date_time.to_time
#=> 2021-08-30 00:00:00 +0000
date_time.to_time.to_i
#=> 1630281600
timestamp = BSON::Timestamp.from_bson(date_time.to_bson)
#=> #<BSON::Timestamp:0x00007fffe31da4a8 @seconds=379, @increment=2488994816>
timestamp.to_bson.get_int64 / 1000
#=> 1630281600
Time.at(timestamp.to_bson.get_int64 / 1000).utc
#=> 2021-08-30 00:00:00 UTC