千家信息网

MySQL保存时间信息上的简单方法

发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,本文主要给大家介绍MySQL保存时间信息上的简单方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL保存时间信息上的简单方法吧。解决方
千家信息网最后更新 2024年12月04日MySQL保存时间信息上的简单方法

文主要给大家介绍MySQL保存时间信息上的简单方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL保存时间信息上的简单方法吧。

解决方案参考如下,即在SimpleDateFormat对象基础上需要明确当前需要使用的时区是什么。

SimpleDateFormat.setTimeZone(TimeZone);

// Java:long timeMs = System.currentTimeMillis();System.out.println("long = " + timeMs);// current time zoneSimpleDateFormat default = new SimpleDateFormat("yyyy-MM-dd HH:mm");System.out.println(default.format(timeMs));// +8:00 time zoneSimpleDateFormat chinaFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");chinaFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));System.out.println("GMT+8:00 = " + chinaFormat.format(timeMs));// +5:30 time zoneSimpleDateFormat indiaFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");indiaFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30"));System.out.println("GMT+5:30 = " + indiaFormat.format(timeMs));

使用如上方法其实就可以解决时区问题,由于我当时获取统计数据是通过小时表获取的且小时表是一小时一条记录。而印度时区为GMT+5:30,在当前表结构的基础上会存在半小时数据偏差的问题,因此为了解决该问题我们修改小时表的统计粒度为半小时。

总结:

该博客只是简单的说出重点的解决时区的方案,在使用该方案的前提是数据库中存储的是国际时间戳!!!

只有基于绝对时间戳的时间存储,从根本上就没有时区的问题!!!时区只是一个显示问题!!!

看完以上关于MySQL保存时间信息上的简单方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

0