【问题标题】:Are struct stat times GMT?结构统计时间是格林威治标准时间吗?
【发布时间】:2011-09-10 10:56:50
【问题描述】:

struct stat 中的一个字段是 st_mtime。我假设那是自 1970 年 1 月 1 日以来的秒数。那是格林威治标准时间还是当地时间?

【问题讨论】:

  • 我会说这无关紧要。无论哪种方式,都经过了相同的秒数。结果将在存储数据的同一时间系统中计算。
  • 如果不知道st_mtime的单位,怎么用?如果是夏令时的当地时间,与格林威治标准时间相比,不是 +- 1 小时 +- Z 小时吗?

标签: linux timezone local gmt stat


【解决方案1】:

time_t 类型表示自 1970 年 1 月 1 日 00:00 UTC 以来经过的秒数(那个时间点被称为“纪元”,并且在世界各地同时发生)。您可以认为“UTC”与“GMT”的含义相同(请参阅Leap Second 了解有关非常小的差异的详细信息)。

请注意,您应该始终使用localtime()mktime() 函数来转换本地时区表示,而不是从time_t 类型中添加或减去值。

【讨论】:

  • 并不真正影响答案,但正如仅供参考,UTC 和 GMT 实际上是不同的,GMT 肯定不会被弃用。在夏令时,它们相差一小时。曾在英国数据中心让我的团队头疼。
  • @JohnWu:我刚刚注意到其他人编辑了我的答案以添加不正确的信息,您对此做出了回应。道歉;我删除了不正确的信息并添加了进一步解释的链接。
猜你喜欢
  • 2011-05-13
  • 2011-10-30
  • 2013-03-10
  • 1970-01-01
  • 2011-02-20
  • 2013-06-01
  • 2010-12-02
  • 2019-11-25
  • 2011-02-04
相关资源
最近更新 更多