数据库中存储的是UTC时间,查询数据时,从数据库返回的是一个时间戳,通过Java的Date来接收这个这个时间戳,会把时间按照服务器所在时区转化时间,所以就会造成java代码拿到的时间比数据库中显示的时间多8小时,这是因为Java会按照本地时区转化为本地的时间。所以时间戳是对的,但是数据库时区跟服务器所在地时区不一样,所以才会造成这种情况,这就要在查询数据时处理好就行了,比如把查询的时间向前提9小时。可以多用convert_tz()函数。
Java时间莫名加8小时,已解决
最新推荐文章于 2026-03-23 03:49:13 发布
本文探讨了数据库存储的UTC时间与Java代码处理时区转换导致的时间差异问题。介绍了如何使用convert_tz()函数调整查询时间,确保时间戳正确转换为本地时间,避免因时区不同造成的8小时偏差。


3013

被折叠的 条评论
为什么被折叠?



