好吧,我似乎无法弄清楚发生了什么,所以我决定问你们。在PHP中,我使用以下代码获取UTC时间戳:
date_default_timezone_set("UTC");
time()
这将例如给我1331065202
然后我在Java中使用此代码来获取UTC时间戳:
long timestamp = System.currentTimeMillis() / 1000;
这将例如给我1331093502
为什么两次如此不同?它们不应该是UTC时区还是我做错了什么?我是在VPS上托管的,这些文章在两个不同的服务器上,所以它可能是服务器端的东西,如果是这样,我该怎么办?
答案 0 :(得分:4)
鉴于两个值狂野不同(甚至不是整数小时),我会说其中一台机器上的时钟是错误的。 (我假设您在几乎同时拍摄了两个时间戳。)
这些时间戳是:
鉴于GMT中的不 3月27日,看起来Java机器上的时钟设置不正确。
如果你完全控制它是真正的VPS,你应该考虑使用NTP或类似的东西来保持服务器的时钟正确。
答案 1 :(得分:2)
正如上面的人已经写过的那样。使用ntp。 如果你的VPS在你的控制之下,那就是debian / ubuntu。以下shell脚本将安装它。
sudo apt-get install ntp
安装后会启动ntp,但是如果你想确保守护进程正在运行
/etc/init.d/ntp restart
希望有所帮助。
答案 2 :(得分:0)