Java时间戳和PHP时间戳给出2个不同的时间



好吧,我似乎不明白发生了什么,所以我决定问你们。在PHP中,我使用以下代码获取UTC时间戳:

date_default_timezone_set("UTC");
time()

例如,这将给我1331065202

然后我用Java编写了这段代码来获取UTC时间戳:

long timestamp = System.currentTimeMillis() / 1000;

例如,这将给我1331093502

为什么两次如此不同?他们不应该都在UTC时区吗?还是我做错了什么?我在VPS上托管,这些涂鸦在两个不同的服务器上,所以它可能是服务器端的东西吗?如果是,我该怎么办?

考虑到这两个值相差很大(甚至不是整数小时),我认为其中一台机器上的时钟是错误的。(我假设你几乎在同一时间获得了两个时间戳。)

这些时间戳是:

  • PHP:2012年3月6日星期二20:20:02 GMT
  • 爪哇:2012年3月7日星期三格林尼治标准时间04:11:42

考虑到现在是格林尼治标准时间3月27日的而不是,Java机器上的时钟看起来只是设置错误。

如果这是一个真正的VPS,你可以完全控制它,你应该考虑使用NTP或类似的东西来保持服务器的时钟正确。

正如上面的人所写的那样。使用ntp。如果你的VPS在你的控制之下,它是debian/ubuntu。下面的shell脚本将安装它。

    sudo apt-get install ntp

它将在安装后启动ntp,但如果您想确保守护进程正在运行

    /etc/init.d/ntp restart

希望能有所帮助。

这些纸条在两个不同的服务器上

这里有一条线索:你的两个服务器设置了不同的时间。

如果您需要Java和PHP应用程序同步,请考虑让两个服务器都使用网络时间协议。

相关内容

  • 没有找到相关文章

最新更新