文档章节

开发中的时区问题

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

时区很麻烦

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

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

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

 - 数据库支持: 差异很大

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

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


数据库差异


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

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

格式交换

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

应用怎么办

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

否则,你可能遇到:

 - 数据库有可能迁移

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

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

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




© 著作权归作者所有

共有 人打赏支持
喻恒春

喻恒春

粉丝 106
博文 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
如何解决分布式系统中的跨时区问题[原理篇]

《谈谈你最熟悉的System.DateTime[上篇][下篇]》从跨时区的角度对DateTime这个我们熟知的类型进行了深入探讨,它们都是为这篇文章作的准备工作。在接下来的两篇文章中,我们将完整的介绍如果...

长平狐
2012/09/04
110
0

没有更多内容

加载失败,请刷新页面

加载更多

结合Spring和Groovy解决脚本热加载

前言 去年写过一篇文件介绍了采用jpython解决动态配置热加载的问题jpython解决热加载,今年在实现规则引擎过程中准备进行升级,采用groovy脚本解决。 方案 将一些规则相关,如统计,排序,过...

春哥大魔王的博客
13分钟前
1
0
以太坊应用开发接口:JSON RPC API

以太坊应用开发接口指的是以太坊节点软件提供的API接口,去中心化应用可以利用这个接口访问以太坊上的智能合约。以太坊应用开发接口采用JSON-PRC标准,通常是通过HTTP或websocket提供给应用程...

汇智网教程
17分钟前
1
0
排序--二分插入排序

二分插入排序是对直接插入排序的一个优化,在排序--直接插入排序中已经分析过直接插入排序的最坏时间复杂度是平方级别的,二分插入排序则是通过二分查找对寻找插入位置进行了优化,在找到插入...

FAT_mt
28分钟前
3
0
Quora点赞过万!麻省理工5.0GPA十条学习技巧

美国版知乎Quora上有个问题是:顶尖学生如何学习。排名第一的答案已经赢得13.5K次点赞,我们翻译出来分享给大家。 MIT normally does not rank its students. So if you hear that someone g...

乔老哥
41分钟前
1
0
IOC的学习(1)

1.IOC理论概要 java中,一个对象A怎么才能调用对象B? 当一个对象的构建,需要多个其他对象时,对象和对象有复杂的构建关系。spring帮助我们维系对象的依赖关系,降低系统的实现成本,前提是...

杨健-YJ
53分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部