我有一个基于客户端-服务器的java application.The客户端在美国/太平洋时区运行,服务器在协调时运行(我在数据库中以协调时保存时间)
例如,如果我将日期保存为太平洋时间09:00小时,则它在数据库中将保存为UTC 14:00小时。
当我从DB读回这个时间时,应用了夏令时,它现在转换为太平洋时间08:00小时,而不是09:00小时。
因此,当从太平洋时间转换为UTC时,不会考虑夏令时,但当从UTC转换回太平洋时,将应用不一致的夏令时。
在DB中,列类型是TIME,而在java中,我将它读入date对象。
我该怎么处理呢?
发布于 2012-05-26 00:09:48
通常,DB服务器决定时间、是否应用夏令时和时区,UTC是标准时区。
建议:
发布于 2012-05-26 00:14:30
我认为你能做的最好的事情就是确保你尽可能多的处理时间,完全不受时区的限制。例如,millis是从Unix时代开始的。然后,您只需在向用户显示数据之前应用时区数据。
因此,在这种情况下,在向服务器报告和从服务器检索时,不要应用任何本地时间假设。这样,数据就不可能有不匹配的时区或DST处理。
发布于 2012-05-26 01:40:14
抛开这些不谈,我建议您手动使用getLong并自己构造Date对象。
https://stackoverflow.com/questions/10757642
复制相似问题