多语言展示
当前在线:1090今日阅读:167今日分享:16

数据库存储日期格式时,如何考虑时区转换问题

数据库存储日期格式时,如何考虑时区转换问题?下面小编从以下几个方面为大家介绍下。
工具/原料

电脑

方法/步骤
1

首先从数据库取数据的过程,数据库的时间字段starts存的是datetime类型,它是一个和时区相关的string(显然:string都是和时区相关的),而且数据库是按照CST时区存的时间。

2

程序中从数据库取数据用的sql语句:这里只是简单的用DATE_FORMAT函数把datetime类型的starts字段转换为我们需要的格式 %Y%m%d%H%i%S 而已。

3

然后看这样一段转换时间的java代码:

4

计算结果如下图所示:

5

而正因为其与时区的无关性,才使得我们的存储数据(时间)是一致的(时区一致性)。  一般的我们将now存储于数据库中,当我们需要展现数据时,将now格式化成想要的格式,如:2011-12-04 21:22:24  而这个功能一般交由java.text.DateFormat来实现。例如:

6

我们发现snow是带时间(如2011-12-04 21:22:24)的字符串,那么 2011-12-04 21:22:24 这个时间是哪个时区的时间呢?  默认情况下,SimpleDateFormat 取得本地系统的时区(我的时区为GMT+8北京),然后按照 pattern('yyyy-MM-dd HH:mm:ss')格式化now,  此时输出的就是 GMT+8 区的时间了。如果想支持国际化时间,则先指定时区,然后再格式化date数据。例如:

7

另外,你可以通过如下代码修改本地时区信息:

推荐信息