文档章节

开发中的时区问题

喻恒春
 喻恒春
发布于 2014/02/10 20:01
字数 410
阅读 224
收藏 3

时区很麻烦

时区 很麻烦, 大概有这么几个问题

 - 历史变更: 这个真的是随历史各个地域变化很大, 看看 wiki 上 中国时区 的历史吧.

 - 夏令时: 基本靠 time 库支持了

 - 数据库支持: 差异很大

 - 客户端: 比如浏览器, 别说你的网站只考虑支持固定时区的用户

两个重要链接 iana.org/tz , worldtimezone , 数据的维护发布就靠他们了.


数据库差异


支持 SQLite3
MySQL PostgreSQL MongoDB
存储时区 可选
时差相关运算/函数
可设定时区
否,只用UTC时间
多种日期格式

注: 本文 把"2012-12-12","2012 12 12","20121212" 当做同一种格式, MongoDB 通过函数完成的,不算多格式支持

格式交换

应用在和第三方进行数据通讯的时候, 可能会遇到多种不同的日期格式,这里面也涉及时区问题. 这需要你看所用语言库的支持了.

应用怎么办

如果你的应用不考虑时区支持, 那对于 MySQL和PostgreSQL来说,只要配置好时区就万事大吉.

否则,你可能遇到:

 - 数据库有可能迁移

 - 随时间推移,应用需要时区支持

 - 返回到客户端日期要符合客户端的时区时间, 你的客户时区分布是如何呢?

综合问题您自己根据应用特性选择吧.




© 著作权归作者所有

共有 人打赏支持
喻恒春

喻恒春

粉丝 105
博文 29
码字总数 21951
作品 5
郑州
程序员
Android中Calendar与Date的区别以及消除时区对日期操作影响的方法

Android中Calendar与Date的区别以及消除时区对日期操作影响的方法 在Android中的日期操作常用的有三种方式,分别是: Date类型 Calendar类型 Unix时间戳 其中,Unix时间戳在计算上最为方便和...

SmilWu
2012/07/08
0
0
Tomcat7.x时区问题导致时间获取不正确

最近在开发中遇到一个非常罕见的问题,就是centos测试服务器上的时间虽然正确,但是安装在上面的Tomacat7.x的时间时区出现错误。 我的程序代码中,恰好使用了对时间查询的sql语句,例如 sele...

gaolu
2014/01/29
0
6
系统开发中的时间类型的处理问题

这两天做了个测试程序放到cloudfoundry上,测试的时候突然发现系统中对日期时间类型的数据处理在云环境下存在问题。 仔细思考以后发现这个问题是一直存在的,只是以前自己做的系统没有考虑到...

chuangyu
2013/05/07
0
0
Reviewboard时区问题

在创建ReviewBoard站点后发现,Reviewboard时区默认为UTC(服务器时区为+8区,即东八区) 在后台管理界面将时区修改为Asia/Shanghai后,没起什么作用 数据库中的时间是UTC时间 邮件中的时间是...

donhui
2014/09/18
0
0
Bootstrap 3时间控件datetimepicker的时区及多语言问题

文章作者:Tyan 博客:noahsnail.com 在Web应用开发中,特别是前端开发中,经常会碰到的一个问题是时间选择问题,幸好Bootstrap已经为我们提供了时间选择控件datetimepicker,但在datetimep...

Quincuntial
2016/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
32分钟前
0
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
1
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
4
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
今天
2
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部