关于 UTC 和 CTS

2015-04-13 13:10:43 +08:00
 Hackathon
1、 数据库里存储时间的时候,存储 "UTC" 、 "CTS"和"时间戳" 各有啥优缺点?

2、 提供接口给 Web、Android、iOS,返回时间使用 "UTC字符串"、 "CTS字符串"和"格式化好的字符串" 各有啥优缺点?
4147 次点击
所在节点    问与答
10 条回复
ryd994
2015-04-13 14:04:04 +08:00
数据库里本质上都是时间戳——你不会存成字符串的………对吧?
客户端也是返回时间戳最好,在客户端上做一下格式化很难么?
网页的话只能输出用户友好的,这个没办法
Hackathon
2015-04-13 14:38:57 +08:00
@ryd994

嗯啊, 不是字符串,而是 datetime

mysql> show create table message_messageinfo;
+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| message_messageinfo | CREATE TABLE `message_messageinfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`title` varchar(255) NOT NULL,
`content` longtext NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 |
+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)


刚去瞅了下 V2EX 的, http://www.v2ex.com/api/topics/latest.json, 返回的是时间戳
jokester
2015-04-13 14:52:47 +08:00
到View之前我都尽量用timestamp
Hackathon
2015-04-13 14:56:29 +08:00
@jokester 那可以详细的说说, 不这样可能会碰到什么坑吗?
bcxx
2015-04-13 15:53:53 +08:00
UTC & iso8601 all the time! 其实大部分情况下你能保留到时区信息就可以了……
jokester
2015-04-13 16:17:41 +08:00
@Hackathon 也不算坑吧。。就是作为API很少要提供字符串格式化/时区转换 之类功能
这些给客户端用本地API做,两边都自由些
julyclyde
2015-04-13 20:32:12 +08:00
注意CST并不简单等于UTC+8
为了避免转换错误,自己的代码里不要进行时区加减计算
nirocfz
2015-04-13 23:15:41 +08:00
egen
2015-04-14 00:06:56 +08:00
不要用 CST 时区,巨坑

CST可以同时代表如下 4 个不同的时区:
Central Standard Time (USA) UT -6:00
Central Standard Time (Australia) UT +9:30
China Standard Time UT +8:00
Cuba Standard Time UT -4:00(夏时制,冬时至-1)

而且就算是Central Standard Time,同一地区的不同时间有时候是CST,有时候是DST
对于一直生活在 UTC+8 时区的我实在搞不清这么多时区规则
julyclyde
2015-04-14 15:59:29 +08:00
@egen 你后半段说的不对。DST只是某个时区的组成部分而已。正确的说法是有时+9:30有时加的更多。但都叫Central Standard Time

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX