【问题标题】:Time terminology时间术语
【发布时间】:2011-09-10 19:45:11
【问题描述】:

我对时间术语有点迷茫。

我了解 epoch 是什么以及 GMTUTC 之间的区别。

但是我对以下符号有点困惑:

  • 日历时间
  • 当地时间
  • 墙上时间

这些与时区和夏令时有何关系?

附言link(感谢@ZincX)

【问题讨论】:

  • 对于那些投票结束问题的人 - 你最好回答或提供一个链接,以便在符号中下订单。这真是地狱。你不觉得吗?
  • Epoch 不是 GMT 和 UTC 的区别。
  • @dimba:如果你试图建议那些投票结束的人应该解释 为什么 作为 cmets,我同意。
  • @Tomalak - 我没有说 Epoch 是 GMT 和 UTC 之间的差异。 “Epoch”后面有一个逗号,所以我只列出了几件事:)
  • @dimba:你只列出了两件事,所以逗号被误用了。 :)

标签: c++ c linux unix time


【解决方案1】:

尝试info,然后尝试* Date input formats: (coreutils)Date input formats.,它以这段精彩的文字开头:

我们的时间测量单位,从秒到月, 如此复杂、不对称和分离,以致于 在时间上进行连贯的心理计算几乎是不可能的。的确,有 某个专横的神,设法使我们的思想受制于时间, 使我们几乎不可能摆脱对湿透的屈从 例行公事和不愉快的意外,他几乎做不到 比把我们现有的系统传下来要好。它就像一组 梯形积木,没有垂直或水平 表面,就像最简单的思想需要的语言 华丽的结构,无用的粒子和冗长的 迂回曲折。与更成功的语言模式不同 和科学,这使我们能够大胆地或至少面对经验 冷静地,我们的时间计算系统默默地和 不断地鼓励我们对时间的恐惧。

...好像建筑师必须以英尺为单位测量长度, 以米为单位的宽度和以埃尔斯为单位的高度;好像基本指令 手册要求具备五种不同语言的知识。它是 难怪我们经常回顾自己的过去或 未来,上周二或周日之后的一周, 无奈的困惑。 ...

-- Robert Grudin,“时间与生活的艺术”。

【讨论】:

    【解决方案2】:
    • 日历时间是自纪元 (t - E) 以来经过的时间。
    • 当地时间是针对时区和 DST 校正的日历时间。
    • 挂钟时间:我假设您的意思是挂钟时间。这是自进程或作业开始运行以来经过的时间。

    RTFM time(7)localtime(3)time(1)

    【讨论】:

      【解决方案3】:

      Epoch:用来指代事物的开始。例如 UTC 时间 1970 年 1 月 1 日 00:00 的 Unix 纪元。 (即值为 0 的 time_t 表示午夜,1970 年 1 月 1 日 UTC)

      日历时间:自纪元以来的时间

      本地时间:您(或计算机)所在时区的日历时间。

      挂钟时间:自某个任意开始以来在真实时钟上经过的时间,例如因为你启动了一个程序(而不是一个程序自启动以来使用的 CPU 时间)

      【讨论】:

        【解决方案4】:

        日历时间是自纪元时间以来的时间。这可以通过几种方式表示,包括:

        1. 简单日历时间:自纪元以来的秒数
        2. 高分辨率日历时间:这使用struct timeval 数据类型也包括秒的小数部分。

        当地时间:这也是一个结构(struct tm 数据类型),其中包括日历时间以及时区和 DST 信息。这提供了在特定语言环境中呈现可理解的时间字符串的所有信息。

        持续时间:进程运行期间经过的时间。

        我建议阅读this link 的信息。它帮助了我。

        【讨论】:

          【解决方案5】:

          还可以看看这个问题,用 C 编写的代码示例很好地解释日历时间和本地时间:

          How do I use the C date and time functions on UNIX?

          【讨论】:

            【解决方案6】:

            有点挑剔,但不再有 GMT 这样的东西了。这个词在 40 年前就被弃用了。

            有许多不同的时间标准,UTC 就是其中之一。另一个是 UT1,它本质上是用日晷测量的时间。还有一个是 TAI,国际原子时间(真正的首字母缩写词是法语,各种时间标准的大多数首字母缩写词也是如此)。顾名思义,TAI 是用原子钟测量的时间。 UTC 是 TAI 和 UT1 之间的折衷。我们希望我们的时间尺度与太阳或多或少保持同步,但我们也希望它基于手头的最佳定义。这两种愿望之间存在张力,因为地球不是以恒定的速度旋转的。

            从长远来看,地球的自转速度会因为潮汐而减慢。几十亿年前,一天的长度要短得多。几百年前它还短了一点。我们的 86,400 秒长的一天是基于一个太阳日的长度从几百年前开始。今天一个太阳日的长度约为 86,400.002 秒,因此我们必须每隔一段时间添加闰秒,以使午夜或多或少地保持在午夜。

            就您提出的具体问题而言,

            • 现在是 2011 年 6 月 8 日 CDT 下午 4:25。那是日历时间。这是一个挑战:从 1999 年 1 月 3 日美国东部标准时间上午 12:42 到 2011 年 6 月 8 日美国东部标准时间下午 4:25 之间经过了多少秒?这类似于要求某人用罗马数字进行算术运算。耶。

            • 当地时间:CDT 下午 4:25 和东部标准时间上午 12:42 是当地时间的示例。对我来说,午夜对地球另一端的人来说是中午。

            • 挂钟时间(更好:挂钟时间):假设您运行一个程序,运行完成需要 20 分钟。那 20 分钟是程序运行这一次所花费的挂钟时间。当我看到某些程序的运行时间比预期的要长得多时,我会检查我愚蠢的防病毒程序是否已经病毒化。通常情况就是这样。在让防病毒程序大吃一惊后,运行完全相同的程序可能只需要五分钟的挂钟时间。另一方面,两次运行的 CPU 时间几乎相同。

            【讨论】:

              猜你喜欢
              • 2018-12-01
              • 1970-01-01
              • 1970-01-01
              • 2015-11-08
              • 2016-10-07
              • 2012-08-19
              • 2011-10-09
              • 2020-12-25
              • 2019-08-06
              相关资源
              最近更新 更多