错误的程序员对时间的信念

时间:2018-08-28 21:49:53

标签: datetime timezone

我刚刚经历了Falsehood Programmer Beliefes about Time + number 2。它们大多数分为三类:

  • Le年/秒
  • 尼泊尔有UTC + 0545
  • DST

但是我找不到答案。有人可以帮忙告诉我以下陈述为何不正确吗?

  1. 系统时钟永远不会设置为某个时间 遥远的过去或遥远的未来。
  2. 好的,但是系统时钟的持续时间为一分钟 大多数情况下将接近一分钟的持续时间 其他时钟。

从crouwd版本开始:

  1. 非leap年永远不会包含a日。
  2. Unix时间对其他任何事情都一无所知 秒。
  3. Unix时间是自1970年1月1日以来的秒数。
  4. 周六的前一天总是星期五
  5. [两个不同的时区将相差一个整数 个季度的时间。
  6. 如果解析日期时间,则可以读取数字 一个字符一个字符,无需回溯
  7. 但是如果您打印日期时间,则可以写数字 一个字符一个字符,无需回溯
  8. 您将不必解析诸如–12Z或 P12Y34M56DT78H90M12.345S
  9. 一年有365天或366天。
  10. 时间在山顶上以相同的速度经过 在山谷的底部。
  11. 该软件将永远不会在正在运行的太空飞船上运行 一个黑洞。

我的猜测是,关于日期时间/时区,我完全忘记了一个(或至少只有几个)类别/事实。什么事?

1 个答案:

答案 0 :(得分:2)

从书面上看,这个问题看起来很广泛,但是我可以讲一下前两个问题。

  
      
  1. 系统时钟永远不会设置为遥远的过去或遥远的将来。
  2.   

有时出于开发目的,开发人员会这样做。编写应用程序的人可能希望确保在不久的将来,他们的应用程序仍然可以克服类似Y2K的障碍。在测试时,他们不必担心他们的鼠标驱动程序会变成kablooie,因为在5010年1月1日到2018年8月28日之后的一天,它的配置没有很好地工作,并且它不知道该怎么办当它意识到整个5009没有任何日志条目时。

  
      
  1. 好的,但是系统时钟的一分钟持续时间与大多数其他时钟上的一分钟持续时间非常接近。
  2.   

计算机系统可能在黑洞附近的宇宙飞船上,并受其time dilation的约束。如果需要与某个距离较远的计算机保持连接(例如,通过将来的星际分组无线电),则不应将其驳倒,输出乱码或出现蓝屏,因为系统时钟可能不同步数小时甚至是几秒钟。更多。

这也可能是由于内部时钟损坏或有缺陷引起的。定时晶体,EPROM和其他组件往往非常坚固耐用且可靠,但是它们是制成品,确实具有一定的公差,并且在极少数情况下会发生故障。

另外,从您的第二个列表中:

  
      
  1. 一年有365天或366天。
  2.   

在某些国家/地区,包括英国,the year 1752 had 354 days由于儒略历转换为公历。

  
      
  1. 周六的前一天总是星期五
  2.   

2011年,Samoa switched time zones, skipping directly from Thursday to Friday

  
      
  1. 时间在山顶和谷底以相同的速度经过。

  2.   
  3. 该软件将永远无法在绕黑洞运行的太空飞船上运行。

  4.   

这些都是对上述时间膨胀的引用。

这里确实有两个原则。一个是相对性/时间膨胀,另一个是日历不是一个简单的静态方程式的事实!由于政治,社会和天文现实,它会随着时间而改变!其他许多事项也与日历将来可能更改的事实有关。它曾经改变过,所以为什么它再也不会改变?

还有其他星球上拟议的计时系统问题,例如Mars。也许我们没有 now 与其一起运行的计算机,但是也许您正在编写的软件将安装在为奥林巴斯星期一时间配置的受火星约束的系统上(嘿,有些人仍在使用Windows XP在2018年,您有什么期望?)。