当前位置: 首页 > news >正文

避免时区问题的最佳实践, 数据库, mybatis

避免时区问题的最佳实践

1. 数据库连接配置

# application.properties
# MySQL - 设置服务器时区
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8# PostgreSQL - 设置时区
spring.datasource.url=jdbc:postgresql://localhost:5432/test?options=-c%20TimeZone=Asia/Shanghai

2. 统一时区处理工具类

@Component
public class DateTimeHelper {public static final ZoneId CHINA_ZONE = ZoneId.of("Asia/Shanghai");// 获取当前中国时区时间public static LocalDateTime now() {return LocalDateTime.now(CHINA_ZONE);}// 转换到中国时区public static LocalDateTime toChinaTime(Instant instant) {return LocalDateTime.ofInstant(instant, CHINA_ZONE);}// 转换为Instantpublic static Instant toInstant(LocalDateTime localDateTime) {return localDateTime.atZone(CHINA_ZONE).toInstant();}
}

需要避免的做法

❌ 不推荐

// 避免使用 java.util.Date
private Date createTime;// 避免依赖系统默认时区
private LocalDateTime createTime = LocalDateTime.now();// 避免混合使用不同的时间类型

✅ 推荐

// 使用 java.time 包
private LocalDateTime createTime;
private LocalDate birthday;
private Instant updateTime;// 明确指定时区
private LocalDateTime createTime = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));

总结

场景推荐数据库类型推荐Java类型说明
创建/更新时间TIMESTAMPLocalDateTime无时区问题
日期DATELocalDate纯日期
国际化时间TIMESTAMPInstant存储时间戳
需要时区TIMESTAMPTZZonedDateTimePostgreSQL专用

核心建议

  1. 统一使用 java.time 包

  2. 数据库字段使用 TIMESTAMP/DATETIME

  3. 应用层统一时区处理

  4. 数据库连接明确指定时区

  5. 避免使用 java.util.Date

http://www.dtcms.com/a/479043.html

相关文章:

  • 望江县建设局网站发布网页
  • Codeforces1058(Div.2) A至F题解
  • MCP原理与实践1-原理部分(详细)
  • 云栖实录|人工智能+大数据平台加速企业模型后训练
  • WordPress整站下载器长春火车站建在哪里
  • 做电影平台网站怎么赚钱吗营销型网站建设多少钱
  • CF1057 BCD
  • 网站开发外文翻译中国纪检监察报网站
  • 医疗级能效革命:医院 “AI + 中央空调” 节能改造全解析
  • [Linux系统编程——Lesson11.进程控制:等待]
  • 甘南网站建设vi设计网站有哪些
  • 网站开发的一般流程是什么建个网站有收
  • 网站开发完成如何上线vs能建设网站吗
  • 婚车租赁网站怎样做wordpress 去掉主题版权
  • yolo的各模块扫盲
  • 宁波营销网站建设外包软件项目管理流程
  • 部门网站的开发 意义二次元wordpress博客
  • Spring 中解决 “Could not autowire. There is more than one bean of type“ 错误
  • 网站开发 前景wordpress魔方
  • 湖南平台网站建设找哪家凤城市网站建设
  • 常规的长焦镜头有哪些类型?能做什么?
  • docker图形化管理
  • flash网站制作实例做做做做网站
  • wordpress写的网站成都哪家公司做网站好
  • 继续接入备案 增加网站 区别怎么打广告吸引客户
  • 全球DRAM市场趋势与技术演进解读
  • mybatis字段自动驼峰转换和大小写敏感
  • 企业网站导航代码太原市手机微网站建设
  • web:ts的数组
  • seo网站运营php网站做cdn