时区
文章平均质量分 53
deelless
韶光易逝,劝君惜取少年时
展开
-
国际版时区问题解决方案之:mysql函数
背景数据库存的是东八区时间,需要根据用户时区时间按 天,周,月统计数据分析将用户时区时间转化为东八区查数据库,查到结果再转化为用户时区但这里涉及到用户时间分组,若分组的维度是东八区,那根据东八区聚合会导致数据计算错误。需要按用户时区分组想过一种方案是将 数据库关于统计相关表加上时区字段,每条记录根据24个时区生成24条记录。这样会产生大量冗余数据(原来1万条,现在24万),影响数据库性能后来找到更优方案使用mysql函数,将数据库中原来东八区数据计算为用户时区时间,根据计算后的时间查询e原创 2020-12-17 18:19:53 · 848 阅读 · 0 评论 -
国际化项目时区问题解决方案
一:背景1.mysql数据库中存储时间的时区:东八区2.web端用户设置的时区3.pc端系统时区二:pc端时区会影响时间戳的转化同一个时间戳,改变pc端系统时区,得到的格式化时间会 变解决:不返回时间戳,返回格式化后的字符串三:方案一使用Spring AOP统一修改(点击此标题,查看详情)优点:代码量小缺点: 不适合复杂统计(用户时区天,星期,月)四:方案二:sql语句中时区函数和子查询将源数据中东八区时间,改为用户时区时间优点:数据库层面做的时区转换,适用范围广,适合复杂原创 2020-12-16 11:50:59 · 3870 阅读 · 0 评论 -
Spring AOP实际应用之:根据时区全局修改用户时间
背景国际版项目,每个用户有自己的时区,数据库存储的时间固定是东八区,现在需要根据用户设置的时区显示时间解决方案很多,这里的方案是 实体类增加时间格式化属性(赋值,前端显示),使用 Spring AOP 全局修改返回对象属性值实体类可以不加属性,直接修改原来的Date有个问题是Date类型的数据以时间戳的形式返回给前端,时间戳会根据浏览器客户端时区的改变而改变所以需要后端定义一个String类型格式化时间,前端显示String一:实体类增加格式化属性二:自定义注解package com.s原创 2020-12-11 18:22:52 · 1311 阅读 · 2 评论