2014-03-13 42 views
2

我有一个服务器时间和客户端时间差异的问题。如何处理服务器和本地时间的差异?

我在印度,我从​​印度存储日期时间/时间戳(假设在14:00),但它在数据库中持续存在+5.30小时(即,如果当地时间是14:00,则持续为19 :30)。在展示我获得后者的价值时(即:19:30)。这可能是因为服务器时间的变化,服务器位于其他一些国家。

我有很多使用这个时间的过滤函数,因此我所有使用datetime的函数都受到了gettting的影响。如何处理这种情况? Plz给我建议。

回答

1

我认为日期对象毫秒(EPOCH)服务器和客户端之间传递。当服务器获得EPOCH时,它计算的时间将按照其时区。通过String进行日期/时间通信是很好的。

所以客户端发送日期的格式说"01/01/2014 14:00"(字符串值),则服务器String读出它并且将其解析(使用格式MM/dd/yyyy HH:mm)为日期对象并持续它。这样在客户端和服务器之间就不会有区别。

+0

这不完全相反吗? EPOCH是绝对的,并且包含_no TZ spec_的字符串被解释为本地TZ? –

+0

OP希望保留在客户端中选择的时间,因为它与服务器保持一致。使用EPOCH,服务器将根据当前时间计算时间。但是,对于字符串,没有计算,只是解析(转换) – sanbhat

+0

要将EPOCH转换为字符串,您需要给定的TZ。基于该TZ,重新转换将产生相同的EPOCH,那么这里的收益是多少? –

1

我认为

(即,如果本地时间为14:00是坚持为19:30)

是您的服务器的时区之间关系的不匹配您的本地系统,与绝对时间的差异无关。由于5.30小时不匹配,我假设数据库以UTC格式存储。您需要在与数据库的连接上设置正确的TZ,或将数据库中给出的时间戳转换为本地TZ(不管是什么)。

相关问题