数据库存储日期格式时,如何考虑时区转换问题?下面小编从以下几个方面为大家介绍下。
工具/原料
电脑
方法/步骤
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
另外,你可以通过如下代码修改本地时区信息:
上一篇:一岁宝宝食谱:冬季
下一篇:如何照看1周岁左右的小孩?