程序员相信的关于时间方面的谎言


以下所有这些假设都是错误的

  1. 一天总是有24小时。
  2. 月份有 30 天或 31 天。
  3. 一年有365天。
  4. 二月总是28天。
  5. 任何 24 小时周期将始终在同一天(或一周或一个月)开始和结束。
  6. 一周总是在同一个月开始和结束。
  7. 一周(或一个月)总是在同一年开始和结束。
  8. 运行程序的机器将始终处于 GMT 时区。
  9. 好吧,那不是真的。但至少程序必须运行的时区永远不会改变。
  10. 好吧,程序必须在生产环境中运行的时区肯定永远不会改变。
  11. 系统时钟将始终设置为正确的本地时间。
  12. 系统时钟将始终设置为与正确的本地时间相差不大的时间。
  13. 如果系统时钟不正确,它至少会始终关闭一致的秒数。
  14. 服务器时钟和客户端时钟将始终设置为相同的时间。
  15. 服务器时钟和客户端时钟将始终设置为 大致相同的时间。
  16. 好的,但是服务器时钟上的时间和客户端时钟上的时间不会相差几十年。
  17. 如果服务器时钟和客户端时钟不同步,它们至少会始终不同步一致的秒数。
  18. 服务器时钟和客户端时钟将使用相同的时区。
  19. 系统时钟永远不会设置为遥远过去或遥远未来的时间。
  20. 时间没有开始,也没有结束。
  21. 系统时钟上的一分钟与任何其他时钟上的一分钟具有完全相同的持续时间
  22. 好的,但是系统时钟上一分钟的持续时间将 非常接近大多数其他时钟上一分钟的持续时间。
  23. 很好,但是系统时钟上一分钟的持续时间永远不会超过一个小时。
  24. 你不能是认真的。
  25. 最小的时间单位是一秒。
  26. 好的,一毫秒。
  27. 永远不需要将系统时间设置为正确的本地时间以外的任何值。
  28. 好的,测试可能需要将系统时间设置为正确的本地时间以外的值,但在生产中永远不需要这样做。
  29. 时间戳将始终以常见的格式指定,例如 1339972628 或 133997262837。
  30. 时间戳将始终以相同的格式指定。
  31. 时间戳将始终具有相同级别的精度。
  32. 足够精确的时间戳可以安全地被认为是唯一的。
  33. 时间戳表示事件实际发生的时间。
  34. 人类可读的日期可以以普遍理解的格式指定,例如 05/07/11。