Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 以毫秒为单位将日期存储为时间_Date_Time - Fatal编程技术网

Date 以毫秒为单位将日期存储为时间

Date 以毫秒为单位将日期存储为时间,date,time,Date,Time,我尝试在数据存储中表示日期对象,而不必担心Java中的日期对象。因此,我考虑只使用毫秒的时间,并存储UTC时区。我考虑过使用简单的移位例程将所有内容组合在一个长的时间段中,因为时区只有5比特(+/-12) 有人能看出这有什么问题吗?还有哪些数据压缩存储方案(文本表示除外)存在,它们与此相比如何 我认为您低估了时区的粒度,而高估了时间戳中对位的需求 为此,long有8个字节 假设您允许自己为时区分配2个字节。这就给你留下了6个时间戳。6*8=48位表示时间戳 48位无符号整数可以处理的最大数字是2

我尝试在数据存储中表示日期对象,而不必担心Java中的日期对象。因此,我考虑只使用毫秒的时间,并存储UTC时区。我考虑过使用简单的移位例程将所有内容组合在一个长的时间段中,因为时区只有5比特(+/-12)


有人能看出这有什么问题吗?还有哪些数据压缩存储方案(文本表示除外)存在,它们与此相比如何

我认为您低估了时区的粒度,而高估了时间戳中对位的需求

为此,long有8个字节

假设您允许自己为时区分配2个字节。这就给你留下了6个时间戳。6*8=48位表示时间戳

48位无符号整数可以处理的最大数字是281474976710655

除以1000,从毫秒到秒281474976710

将该数字输入一个:10889-08-02T05:31:50+00:00

2015年是10889年


只需为时区使用2个字节。你有空间了。这将很容易让您将时区表示为分钟偏移量+-24小时。由于它是整字节的,打包代码将更容易理解。

我认为你低估了时区的粒度,而高估了对时间戳中位的需求

为此,long有8个字节

假设您允许自己为时区分配2个字节。这就给你留下了6个时间戳。6*8=48位表示时间戳

48位无符号整数可以处理的最大数字是281474976710655

除以1000,从毫秒到秒281474976710

将该数字输入一个:10889-08-02T05:31:50+00:00

2015年是10889年


只需为时区使用2个字节。你有空间了。这将很容易让您将时区表示为分钟偏移量+-24小时。由于是整字节,打包代码更容易理解。

尼泊尔的时区是UTC+5:45。凤凰岛是UTC+13。如何将其纳入+/-12计划?一般来说,如果您的数据存储机制(您还没有确定您使用的是什么)有一个用于存储日期/时间数据的数据类型,那么可能已经有一个从Java
date
s到该格式的映射,可以处理任何转换细微差别。尽量避免使用字符串(因为使用字符串会带来格式问题)UTC标准规定-12到+14,所以有5位(-16/+15)就足够了,但四位偏移量很有趣,所以它的7位很容易变成8位。谢谢你的提示。尼泊尔的时区是UTC+5:45。凤凰岛是UTC+13。如何将其纳入+/-12计划?一般来说,如果您的数据存储机制(您还没有确定您使用的是什么)有一个用于存储日期/时间数据的数据类型,那么可能已经有一个从Java
date
s到该格式的映射,可以处理任何转换细微差别。尽量避免使用字符串(因为使用字符串会带来格式问题)UTC标准规定-12到+14,所以有5位(-16/+15)就足够了,但四位偏移量很有趣,所以它的7位很容易变成8位。谢谢你的提示。我也做了一个8位的计算,得到了1142465年。所以你是对的。问题可能是夏令时之类的,但这取决于国家和一些与上下文无关的东西。是的,夏令时国家将其时区从一年中的一部分转移到另一部分。例如:英国在UTC+0(冬季)和UTC+1(夏季)之间转换。我还用8位进行了计算,得到了两个方向的1142465年。所以你是对的。问题可能是夏令时之类的,但这取决于国家和一些与上下文无关的东西。是的,夏令时国家将其时区从一年中的一部分转移到另一部分。例如:英国在UTC+0(冬季)和UTC+1(夏季)之间转换。