官术网_书友最值得收藏!

3.2 使用日期

MongoDB中的日期使用Date類型表示,在其內部實現中采用了一個64位長的整數,該整數代表的是自1970年1月1日零點時刻(UTC)以來所經過的毫秒數。Date類型的數值范圍非常大,可以表示上下2.9億年的時間范圍,負值則表示1970年之前的時間。

這種方式比較常見,比如Java中的System.currentTimeMillis方法也是這么計算的。

在使用日期類型時,通常需要注意時區的問題。MongoDB的日期類型使用UTC(Coordinated Universal Time)進行存儲,也就是+0時區的時間。一般客戶端會根據本地時區自動轉換為UTC時間,代碼如下:

在這里,ISODate是對于UTC時間的包裝類。

下面,再看一個稍微復雜的例子,代碼如下:

執行上述代碼,將會看到輸出如下:

可以看到,使用new Date與ISODate的語義是相同的,兩者最終都會生成ISODate類型的字段(對應于UTC時間)。而Date與兩者都不同,它會以字符串形式返回當前的系統時間。由于當前正處于+8時區(北京標準時間),因此輸出的時間值比ISODate多8個小時。

通過typeof操作符可以看到其中的不同,代碼如下:

主站蜘蛛池模板: 公安县| 青川县| 庆云县| 右玉县| 高唐县| 利津县| 金乡县| 綦江县| 元朗区| 盐津县| 万载县| 静乐县| 青河县| 上林县| 峡江县| 内江市| 无棣县| 鄂托克旗| 永宁县| 西宁市| 南宁市| 太湖县| 阿勒泰市| 新泰市| 邯郸市| 临泽县| 沭阳县| 凤翔县| 佳木斯市| 孟村| 武隆县| 安岳县| 阜城县| 乐昌市| 涿州市| 赤峰市| 诸城市| 龙门县| 班玛县| 深水埗区| 青阳县|