我有一个服务器时间和客户端时间不同的问题。
我在印度,我正在存储来自印度的日期时间/时间戳(假设在14:00),但它在数据库中持久化为+5.30小时(即,如果当地时间是14:00,则持久化为19:30)。而显示我得到后一个值(i。艾凡:7:30)。这可能是因为服务器时间的变化,服务器位于其他国家。
我有很多使用这个时间的过滤函数,因此我所有使用datetime的函数都会受到影响。如何处理这种情况?
我想
(我。E,如果本地时间是14:00,它将被保存为19:30)
与服务器的时区和本地系统的时区不匹配有关,而与绝对时间的差异无关。由于5.30小时的不匹配,我假设数据库存储在UTC。您需要在与数据库的连接上设置正确的时区,或者将数据库给出的时间戳转换为本地时区(不管是什么)。
我认为日期对象在服务器和客户端之间以毫秒 (EPOCH)进行通信。当服务器获得EPOCH时,它将根据其时区计算时间。通过String
进行日期/时间通信是很好的。
所以客户端发送日期的格式说"01/01/2014 14:00"
(字符串值),服务器读取它作为String
和解析它(使用格式MM/dd/yyyy HH:mm
)到一个日期对象,并持久化它。这样,客户端和服务器之间就没有区别了。