1 KingEngine 2018-10-22 20:01:27 +08:00 安卓标配 |
2 Raymon111111 2018-10-22 20:08:30 +08:00 ![]() 时间是负的让人很为难 |
3 rocbomb 2018-10-22 20:11:48 +08:00 难道你想带着小米手机穿越到古代? 求带啊 |
4 SuperMild 2018-10-22 20:15:26 +08:00 一般来说可以了 |
5 keinx 2018-10-22 20:37:09 +08:00 android 是基于 linux 的 linux 的基准时间是 1970 年 1 月 1 日 0 点。 所以这和小米没有啥关系,也和 android 没有太大关系,这个要问 linus 当时为啥要把时间基准设置成 1970 年 1 月 1 日 0 点了 |
6 wohenyingyu02 2018-10-22 20:38:03 +08:00 @Raymon111111 时间应该是 unsigned int 把,负不了 |
![]() | 7 ionblue 2018-10-22 20:41:49 +08:00 via Android ![]() 小米是因为安卓,安卓是因为 Linux,Linux 是因为 Unix,Unix 是因为丹尼斯,至于丹尼斯当年为什么这么干?那是因为他喵的本来只是想做个系统以方便移植游戏平时玩玩,谁会想到居然就流行起来了。 |
8 Raymon111111 2018-10-22 22:16:00 +08:00 @wohenyingyu02 不一定啊 也可以是简单的 int |
![]() | 9 xiaolanger OP 看了下 Android 上的 Google 日历貌似也是这样,苹果的就没事,不知道为什么要这样,不应该啊 |
![]() | 10 no1xsyzy 2018-10-23 01:10:12 +08:00 所以 Linux 在转 64 位时间戳的时候为什么不加个后 32 位都是 0 的常数?时间戳转换就只需要改变这一个点 或者让时间戳变 signed,就可以表示 1970 之前的时间了 其实还是懒得变吧 |
![]() | 11 tia 2018-10-23 01:22:39 +08:00 我这里怎么是 1901 年 ![]() |
![]() | 12 Lonely 2018-10-23 02:09:26 +08:00 via iPhone iOS 的能翻到公元前好几千年 |
14 dlsflh 2018-10-23 02:32:14 +08:00 via Android @xiaolanger 你怎么看的?我能看到 1900. |
15 |
16 zwh2698 2018-10-23 03:22:37 +08:00 via Android 我猜和日历的实现有关,如果是查表法,所以就会限制,如果基于规则算就会没有多少关系,其实主要是阴历计算规则复杂,影响了阳历,为了加快计算我见过很多都是内置编年表,然后查。以上都是猜的 |
![]() | 18 opengps 2018-10-23 08:27:22 +08:00 现在用的时间戳就是从 1970 年开始算的,很多系统都直接遵循 linux 的这个标准 1900 相当于一个人为的标准调整 |
![]() | 19 opengps 2018-10-23 08:28:30 +08:00 ![]() 做过跨时区业务的人都特别喜欢用时间戳,然后展示时候配合而时区计算实际时间 |
![]() | 20 TheBladeDancer 2018-10-23 08:42:25 +08:00 @ShareDuck 十月份名单加急处理,把你安排上 |
![]() | 21 shakoon 2018-10-23 08:47:12 +08:00 三棒手机表示日历最小日期是 1902 年 1 月 1 日 |
![]() | 23 passerbytiny 2018-10-23 09:01:43 +08:00 以上说得都不对。时间值的存储格式主流有三种情况:年月日时分秒毫秒分别以单独的字节表示值然后组合;以 1970 年 1 月 1 日零点零分零秒为基准的秒数 /毫秒数 /浮点数;以 1900 年 1 月 1 日零点零时零分为基准的浮点数。但是请注意,三种存储方式都是允许负数的。并且 java.util.date 以及后继类都没有限制时间范围,故可以认为时间范围是无穷的。 所以这锅 UNIX 时间戳、android、java 都不能背,只能是开发人员背,因为他们懒,根本没开发日历,而是只使用系统自带的日历。(与单纯的时间相比,日历复杂多了)。 |
![]() | 24 loek 2018-10-23 09:07:33 +08:00 IOS,我给翻到了 18 年,2000 年前 |
![]() | 25 cherrypi 2018-10-23 09:10:52 +08:00 via Android 为啥我的小米 6 支持到 1901 年 1 月 1 日? |
![]() | 26 secsilm 2018-10-23 09:16:15 +08:00 楼主什么手机哪个系统版本?我这米 6 MIUI 10 最新开发版能到 1901.1.1 |
![]() | 27 em2046 2018-10-23 09:17:22 +08:00 ios 日历在 1583 年之前也无法显示年份了 翻到 1583 之前,关闭程序,然后日历 App 就打不开了。。。 |
![]() | 29 sujin190 2018-10-23 09:21:49 +08:00 ![]() 日历和时间戳有啥关系?难道日历就不能另外数据结构?只能说 app 做的不行 |
30 ShareDuck 2018-10-23 09:28:49 +08:00 @TheBladeDancer #20 你等一下,我去开一下门,有快递。 |
![]() | 31 JavaFirstMaster 2018-10-23 09:38:25 +08:00 @daigouspy 求求你别秀了,十月份名额满了 |
![]() | 32 tourist2018 2018-10-23 10:36:16 +08:00 系统自带吧 而且从 PM 角度看 1970 年以前确实没啥用处 毕竟智能手机才出来几年 |
35 fffang 2018-10-23 12:31:34 +08:00 你们这么一说日历 app 全是 bug ? |
![]() | 37 ericv 2018-10-23 13:03:24 +08:00 只能说。。。你不是程序员吧 |
![]() | 38 xiaolanger OP |
![]() | 39 xiaolanger OP @dlsflh #14 @secsilm #26 @weyou #15 我 google 日历我是通过之前的一个备用机看的,可能版本太老了吧 @passerbytiny #23 我也纳闷呢,跟时间戳能有直接关系? 还有扯 Linux Unix 的。。。还不让查几十年前的日期了? |
![]() | 40 xiaolanger OP 真是,楼上各位扯时间戳的,调戏的除外,剩下的有一个算一个,是不是真的思维局限了? |
![]() | 41 dinghmcn 2018-10-23 13:53:27 +08:00 via Android 想想 c 是什么时候发明的,那时候为了节省内存选择近的时间作为起点;农历是查表,未来的具有不确定性 |
![]() | 42 xiaolanger OP @dinghmcn #41 但这不是小米日历程序只能选择 1970 年之后的理由吧 |
![]() | 43 ericv 2018-10-23 14:23:31 +08:00 @xiaolanger 表激动,并无此意。。。 |
![]() | 44 xiaolanger OP @ericv #43 我代表拍黄片的放下了手中的刀 ![]() |
![]() | 45 leexy 2018-10-23 15:03:17 +08:00 ![]() |
46 weyou 2018-10-23 15:14:45 +08:00 只能说开发人员偷懒了, 直接用 timestamp 转换成日期,就是图个方便嘛 |
47 RobertYang 2018-10-23 15:17:56 +08:00 via Android 小米日历能到 1901 年啊。。。 |
![]() | 48 xiaolanger OP @RobertYang #47 同一个世界,不同的小米 |
49 pipilu112 2018-10-23 22:27:11 +08:00 via Android 是为了阴历啊 |
![]() | 52 alfredsun 2018-10-25 16:32:19 +08:00 @xiaolanger 欧版 Mix2s MIUI10 只到 1970 年。。 |
![]() | 53 xiaolanger OP @alfredsun #52 看来确实是小米的问题了! |