- MongoDB進階與實戰:微服務整合、性能優化、架構管理
- 唐卓章
- 386字
- 2021-05-19 17:44:42
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操作符可以看到其中的不同,代碼如下:

推薦閱讀
- Learn Type:Driven Development
- Visual C++數字圖像模式識別技術詳解
- Raspberry Pi for Secret Agents(Third Edition)
- Data Analysis with IBM SPSS Statistics
- 微信公眾平臺開發:從零基礎到ThinkPHP5高性能框架實踐
- Corona SDK Mobile Game Development:Beginner's Guide(Second Edition)
- 愛上micro:bit
- 從零開始學C#
- Learning Node.js for .NET Developers
- C陷阱與缺陷
- Python應用開發技術
- Mastering OpenStack
- 關系數據庫與SQL Server 2012(第3版)
- 程序員的英語
- Building E-Commerce Solutions with WooCommerce(Second Edition)