标签:00 国际化 存储 1970 01 时间 MySQL 软件
1、时区
同一个时间点,比如 英国的1970-01-01 00:00:00 的那一个时刻,在东八区北京时间是:1970-01-01 08:00:00
所以,时间戳的秒数也会不同:
北京时间戳为0,对应的时间点是 1970-01-01 08:00:00
英国的时间戳为0,对应的时间点是 1970-01-01 00:00:00
2、MySQL的时间存储
dateTime 没有时区概念,相当于字符串入库
timestamp 存储时,MySQL将TIMESTAMP
值从当前时区转换为UTC时间进行存储,查询时,将数据从UTC转换为检索的当前时区。(其他类型(如DATETIME)不会发生这种情况。)
参考链接:https://blog.csdn.net/m0_38072683/article/details/105011313
3、Java连接MySQL获取时间如何展示
我们想要的情况:
如果数据库之中存储的时间是 北京时间 1970-01-01 08:00:00
如果是北京的用户,看到的时间是 1970-01-01 08:00:00
如果是英国的用户,看到的时间是 1970-01-01 00:00:00
Java程序而言,如果MySQl之中存储的是timestamp,那么保证连接会话的timezone是对应的时区即可,获取到的时间是MySQL处理过的对应的时区的时间
如果MySQL存储的是datetime,那么在字段的 jakson 解析时候按照对应的时区解析转换时间;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
TRANSLATE with x English TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back
标签:00,国际化,存储,1970,01,时间,MySQL,软件 来源: https://www.cnblogs.com/xuweiqiang/p/16138234.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。