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 是否有充分的理由不使用UTC存储时间?_Date_Time_Utc - Fatal编程技术网

Date 是否有充分的理由不使用UTC存储时间?

Date 是否有充分的理由不使用UTC存储时间?,date,time,utc,Date,Time,Utc,我想知道,除了UTC(GMT)以外,是否有任何很好的理由将时间信息存储在其他任何东西中?我相信这是所有软件工程的一条坚实的规则。转换为本地时间仅仅是为了显示目的在UI层进行的转换。我也看到过需要翻译才能正确实现算法(用于处理午夜日期更改等)的情况。我认为这取决于应用程序。我研究电离层和磁层的空间物理模型。我们使用磁性本地时间,将日期和时间存储为 当您确定只使用本地时间时 报警和计划任务有时存储在本地时间,这样它们就不会受到夏令时或时区变化的影响。有没有?我相信在一些孤立的案例中有很好的理由。不过

我想知道,除了UTC(GMT)以外,是否有任何很好的理由将时间信息存储在其他任何东西中?我相信这是所有软件工程的一条坚实的规则。转换为本地时间仅仅是为了显示目的在UI层进行的转换。我也看到过需要翻译才能正确实现算法(用于处理午夜日期更改等)的情况。

我认为这取决于应用程序。我研究电离层和磁层的空间物理模型。我们使用磁性本地时间,将日期和时间存储为

当您确定只使用本地时间时

报警和计划任务有时存储在本地时间,这样它们就不会受到夏令时或时区变化的影响。

有没有?我相信在一些孤立的案例中有很好的理由。不过,一般来说,存储UTC要比本地时间好得多,因此我会将UTC作为默认位置,除非有特殊考虑。

一般来说,我觉得使用UTC更好。 有时你可能需要一个当地时间。那么我宁愿使用UTC+时区信息

一般来说,对于重复性事件,时间可能非常棘手,您应该非常仔细地分析用例

想象一下,每周二上午9:00有一次重复的会议。 如果DST发生变化,会议仍应在(新的)上午9:00举行

但在法国的一些人的会面中没有添加任何内容。对他们来说,会议是在下午6点。 他们用不同的规则改变DST

当您更改DST时,他们不会更改,因此在一段时间内(直到法国更改DST),应该有人“关闭”:或者您的会议将在上午10点举行,他们的会议将在下午6点举行,或者您的会议将在上午9点举行,他们的会议将在下午5点转移。没有别的办法,计算机与之无关

应用程序将如何决定谁应该被“固定”? 这是一个成员最多的群体吗?(美国1人vs法国20人?)?(如果美国的第一个人是首席执行官怎么办?)

你如何储存这些信息? 我的最佳解决方案是使用UTC+一个“主时区” “主时区”中的用户获胜(保持固定)

事情可能会变得相当棘手,但总的来说,我发现UTC解决的问题比它引入的要多


为了从
fjsj
中澄清一个(非常有效的:-)点:所谓“主时区”,我指的是确切的时区,包括有关DST活动与否的信息

如果只存储
PT
(太平洋时间),那么这是不够的。 太平洋标准时间(PST)或太平洋夏令时(PDT)为


也许更好的办法是不要将定期会议视为“一个固定的时间点”,从“纪元”开始以秒/毫秒表示。编程语言(最终)开始采用JodaTime的概念。

在嵌入式系统中,您可能会以某种形式从源接收到时间,即“历元时间”

如果时间更新相对频繁,显示相对不频繁,那么您最好以提供给您的相同方式存储时间,并仅在需要时将其转换为显示

不过,一般来说,除非有其他考虑因素,否则UTC是一种可行的方法。

是一种计时标准,其精度和精确度为,但以不规则的间隔添加闰秒,以使其能够精确跟踪平均太阳时(UT1)

如果您使用的系统无法处理闰秒,则建议使用TAI而不是UTC


请参阅:

即使如此,如果有任何类型的全天候活动,也可以使用UTC。否则,处理夏令时转换就成了一个巨大的难题。我是根据痛苦的经历说的,或者如果时区可以改变的话。必须更新本地时间。它们是/存储/在本地时间中,还是更好的方法是获取UTC并使用convertToLocalTime()成员函数?@Pete:想想我的闹钟:闹钟设置为本地时间上午7点。当时钟在冬天倒转时,我不想在早上6点被叫醒。当我去西部出差时,我不想在半夜被叫醒,仅仅因为它是7点回家。“Dave Yeah,所以你只需改变TimeZyZe++N,那么CurruttoLoCalTime:Currututc,TimeZyApple,IsayLaySaveStimeTimes将返回本地时间(即使它是作为UTC内部存储的)。.你可以做这些,但为什么?它不会给你带来任何好处。因此,为了存储一天中没有任何特定关联日期的时间,使用本地时间是有意义的。好的观点。现在你需要更多的投票,我不明白为什么人们认为posix时间是线性的,当它每隔几年后退一次的时候。更确切地说:它后退了?哎呀。我不知道。我认为它之所以向前跳跃是因为地球自转速度减慢。它在历史上从来没有向前跳跃过(将来可能),但平均每1.5年后退一次。如果我们有一个秒表,它每半秒就分开一次,时间是这样的:
58.0 58.5 59.0 59.5 00.0 00.5 00.0 00.5 01.0
假设您正在设计一台服务器来管理某些真实世界的事件。假设一个活动发生在“洛杉矶,每周二下午2点到3点”。如何将其存储在UTC中?如果我错了,请纠正我,但我认为存储UTC+主时区并不能解决DST更改的问题。实用示例:1-您需要存储日期时间“1年后纽约时间上午9点”。您以UTC计算该值,并将其与纽约时区一起存储在数据库中。2-在1年过去之前,纽约更改其DST。纽约时间上午9点的原始日期与我们存储的日期不同。