是客户端JavaScript计算的Unix时间戳相对于用户的时区吗?

时间:2012-01-12 01:45:28

标签: java time timezone jodatime unix-timestamp

我想将两个客户端时间(由unix时间戳表示)转换为标准化服务器时间,以UTC时区表示。

我想使用Java Joda时间库来执行此操作。

因此,如果我在两个不同的时区有两个客户端,并且我使用JavaScript代码获取每个时间戳的Unix时间戳并将长整数值传递给服务器上的Java代码(UTC时区),我是否首先需要转换从用户的时区到服务器时区的那些时间,如果我想将它们存储为可比较的日期,或者Unix时间戳意味着如果我将它们转换为服务器上的Joda DateTime(如下所示),它将自动为每个时间段创建一个DateTime这相当于服务器的时区?

long clientTime = 1326329941540; // passed from client to server
DateTime clientTimeAsJoda = new DateTime(clientTime); 
// (A) Does this convert clientTimeAsJoda to server time zone?

或者我需要做这样的事情:

long clientTime = 1326329941540; // passed from client to server
DateTime clientTimeAsJoda = new DateTime(clientTime).withZone(DateTimeZone.UTC); 
// (B) Does this convert clientTimeAsJoda to server time zone?

1 个答案:

答案 0 :(得分:4)

Unix时间戳与时区无关;它们代表自称为“纪元”的特定时刻以来的秒数,即1970-01-01 00:00:00 UTC。 (你的值实际上是几毫秒而不是秒,但想法是一样的。)所以不,你不应该担心客户的时区。