Mongodb的日期缩短了1小时

Mongodb的日期缩短了1小时,mongodb,Mongodb,我在ubuntu服务器上运行mongodb。服务器时间为 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") 正好有一个小时的时差。当我使用php使用MongoDate()更新文档update

我在ubuntu服务器上运行mongodb。服务器时间为

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")
正好有一个小时的时差。当我使用php使用
MongoDate()
更新文档
updated\u on
字段时,该字段的值仍然为1小时

[编辑] 实际上,我刚刚检查了我的php错误日志,日志文件中的时间也是1小时

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

2012-09-13T20:15:58.670Z
Z=祖鲁时间/零偏移/UTC。您还可以将TZ中的时间表示为2012-09-13T20:15:58.670+00:00,如中所定义


BST是UTC+1。因此,它们是相同的时间,但在不同的时区。

您可以通过使用
ToLocalTime
方法显示日期时间来解决此问题

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


这是由于MongoDB以BST格式存储datetime的方式造成的。因此,服务器的夏令时或时区将对返回到应用程序的实际日期时间产生影响。这个简单的代码将能够像往常一样使用
ToString(“dd-MMMM-yyyy-hh:mm-tt”)
或任何其他基于您的要求的格式。

在这里,您需要了解一个时间设置的概念,在世界上一些国家的时钟中,时钟会提前1个或更多小时,以体验一个多小时的日光。IST和GST之间的时差为5.30小时,但新德里和伦敦之间的实际时差为6.30小时。有关设置和使用服务器时间的信息,请参阅中的这篇文章。

在windows上更改时区。 控制面板->日期和时间->时区更改->协调世界时(UTC)。
然后更改您的时间

谢谢您的快速回复。我如何让Mongo告诉我BST的时间?为什么php日志文件也有同样的问题?也许服务器是在UTC运行的,没有时区?检查它的定义。日志文件也不是“关闭”的,它只是在同一时刻存在,但在不同的时区:-):)我认为这更多的是关于ubuntu,而不是mongodb或php:)谢谢你的时间。