mysql查看時區 show variables like "%time_zone%";
system_time_zone UTC
time_zone SYSTEM
mysql时区默认是服务器时区,所以是utc
Tue, 15 Aug 2017 03:01:25 +0000
java的Date对象包含时区。
如果是某天的10点,获取毫秒值转换成本地时间就变成了18点,因本地的时区是东八区CST。
所以前台页面数据到数据库,该数据的入库时间比东八区晚8小时,但是展示的时候java中date对象用时区进行了转换得到毫秒值,并不影响时间的展示。
但是在单独处理时间的时候牢记数据库时间是晚八小时的。
以及mysql的unix_timestamp得到的秒值转成北京时间是晚8小时。
参考:http://blog.csdn.net/stewart/article/details/9412163
第一个概念:linux系统底层存储的UTC时间,java计算毫秒值也是计算到UTC时区的1970年0时0分0秒中间的毫秒值
date '+%s' 得到毫秒值
第二个概念:
timestamp是什么?
timestamp是mysql数据库中的一种字段类型,内部存储是4个字节
精度达到微妙、回转换成UTC时间存储、读取的时候再根据时区转换回来
简而言之,由于其他的string类型时间录入,以及应用程序时间,导致有两种时区的时间。
建议需要时对时区做统一处理,再装换成相应时间。