5-time

第五章 时间概念

1 简介

在计算机领域内,有许多与时间相关的概念。它们应用于不同的场景,表示着不同的含义。本文将介绍和总结与时间相关的概念,帮助大家系统性的理解时间问题。

小水滴还提供了在线时间戳转换工具,欢迎使用。

2 时区(Time Zone)

因全球日照时间不同,世界上各个国家和地区根据她们所在的经度不同被划分为24个时区。大致上,每隔经度15º划分为一个时区。这24个时区又被划分为东、西各12个时区。规定英国(格林尼治天文台(Royal Greenwich Observatory)的旧址)所在的时区为零时区,有时又被称为格林尼治时区(GMT, Greenwich Mean Time)。每相邻的两个时区相差1个小时。

为了各时区之间能够协调工作,最流行的一种世界时间标准是协调世界时(Coordinated Universal Time),也就是我们常说的UTC时间

我们国家的北京时间处于东八区,标记为UTC/GMT+08:00。这个标记的意思是:在UTC时间标准下,北京时间比格林尼治时间早8个小时。即当格林尼治时间为午夜00:00时,北京时间为上午08:00。开发人员常常混淆UTC和GMT的概念;她们的区别是UTC是一种时间标准,而GMT表示的是一个时区

在开发程序或者应用时,开发人员常常使用UTC时间标准来表示具体的时间,因为,无论程序运行于哪个时区,都能正确的生成或者读取这个具体的时间。

Epoch Time是一个特定的时间,常用于程序设计之中。Epoch Time指的是在格林尼治时区1970年1月1日零时这个时刻,即1970-01-01 00:00:00 UTC。Epoch Time最初用于Unix系统中;她目前已被广泛的应用于各个系统。一种常见的时间表示法是使用与Epoch Time相隔的秒数来表达一个特定的时刻。例如,在撰写本文的时间为自Epoch Time之后的1593990565秒(1593990565 seconds since epoch)。

3 日期/时间的格式

ISO 8601是国际标准化组织(International Standard Organization)制定的日期和时间的表示方法。该标准记录了日期和时间的多种表示方法;本文仅简要的介绍其中几种最为常见的方法。

  1. 年份一般又四个数字表示:YYYY。例如:2020。
  2. 年份月份一般由四个数字的年份和两个数字的月份表示:YYYY-MM。例如:2020-07。
  3. 日期一般有四个数字年份、两个数字月份和两个数字的天数表示:YYYY-MM-DD。例如:2020-07-05。
  4. 日期加上小时和分钟则表示为:YYYY-MM-DDThh:mmTZD。例如:2020-07-05T19:20+01:00。其中,字母"T"分隔日期和时间,出现在时间之前。最后的TZD(Time Zone Designator)表示时区,她的值可能为Z,+hh:mm或者-hh:mm,分别表示GMT时区或者快于/慢于GMT时区的小时分钟数。
  5. 日期加上时、分、秒则表示为:YYYY-MM-DDThh:mm:ssTZD。例如:2020-07-05T19:20:00+08:00。
  6. 日期加上时、分、秒、毫秒则表示为:YYYY-MM-DDThh:mm:ss.sTZD。例如:2020-07-05T19:20:00.45+08:00。

4 系统时间、CPU时间和墙上时间

在学习计算机系统或者开发系统应用时,常常需要记录运行一段程序所需的时间(Elapsed Time)。在计算运行时间时,常常会遇到几个与时间相关的概念,例如:系统/用户CPU时间(System-/User- CPU Time)CPU时间(CPU Time)墙上时间(Wall-Clock Time)

墙上时间(Wall-Clock Time)是指真实经历的时间。在程序开始和结束时,分别查看墙上的时钟获得的时间的差值,即为该程序运行经历的墙上时间。例如:一个程序在9点10分开始,于9点15分结束,那么该程序运行了5分钟。这里的5分钟是指墙上的时间。

CPU时间是指程序占用CPU的时间。例如上述的程序运行了5分钟,但是在这5分钟之内,该程序并不一直占用着CPU。因为,该程序可能会等待I/O操作,或者操作系统调度了其他程序运行。因此,该程序占用CPU的时间应更短。

系统/用户CPU时间(System-/User- CPU Time)则是指在程序运行的过程当中,操作系统在内核空间(Kernel Space)内或者用户空间(User Space)内使用的CPU时间。

5 结语

本章介绍了计算机领域内与时间相关的常用概念。时间概念并不复杂,但是较为繁琐。幸运的是,操作系统或者编程语言的标准库都提供了时间相关的函数用于时区转换、时间表达和时间计算等功能。

 

上一章
下一章

注册用户登陆后可留言

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.