2012-09-13 39 views
2

我在ubuntu服務器上運行mongodb。服務器時間是Mongodb日期已關閉1小時

root# date 
Thu Sep 13 21:15:58 BST 2012 

但是當我運行下面的命令,我得到不同的結果

root# mongo 
MongoDB shell version: 2.2.0 
connecting to: test 
> new Date() 
ISODate("2012-09-13T20:15:58.670Z") 

恰好有一個小時的時差。當我使用MongoDate()使用php更新文檔updated_on字段時,該字段的值仍爲1小時。

[編輯] 其實我只是檢查我的PHP錯誤日誌和日誌文件的時間爲1小時關閉以及

[13-Sep-2012 20:11:14 UTC] Log Message (Time should be 21:11:14) 

回答

4

蒙戈告訴你

2012-09-13T20:15:58.670Z 

Z =祖魯時間/零點偏移/ UTC。順便說一句,您也可以在TZ中表示爲2012-09-13T20:15:58.670 + 00:00,如the ISO8601 standard中所定義的時間。

BST是UTC + 1。所以,他們是同一時間,但在不同的時區。

+0

感謝您的快速回復。我如何讓Mongo告訴我在BST的時間?爲什麼PHP日誌文件有相同的問題? – Optimus

+0

也許服務器在UTC沒有時區運行?檢查它的TZ定義。日誌文件也不是「關閉」,它只是在同一時間生活,但在不同的時區:-) – fvu

+0

:)我認爲這是更關於ubuntu然後mongodb或PHP :)感謝您的時間。 – Optimus

1

您可以通過使用ToLocalTime方法顯示DateTime來解決此問題。

MVC C#示例:@Model.StartDate.ToLocalTime()

這是由於在BST格式方式MongoDB的存儲日期時間的。所以夏令時或服務器的時區將影響返回到應用程序的實際日期時間。這個簡單的代碼將能夠像往常一樣格式化爲ToString("dd MMMM yyyy hh:mm tt")或根據您的要求的任何其他格式。

0

這裏您需要了解時間設置中的時間設置概念daylight saving time.在世界各地的某些國家/地區,時鐘提前1小時或更長時間,以便在一小時內體驗日光。 IST和GST之間的差異是5.30小時,但實際時差在新德里和倫敦之間的時間是6.30小時。請參閱4GuysFromRolla這篇文章,瞭解如何設置和使用服務器時間。