background image

C/C++中的日期和时间

摘要:
本文从介绍基础概念入手,探讨了在 C/C++中对日期和时间操作所用到的数据结构和函
数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的
实例向你展示了 time.h 头文件中声明的各种函数和数据结构的详细使用方法。

关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock 
tick(时钟计时单元)

1.概念
在 C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许
多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过 C++语言中对时间的
操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在 C/C++中时间和
日期的使用方法.

通过学习许多 C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一

” “

些 时间 和 日期 的概念,主要有以下几个:

Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所
熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与
UTC 的时差为+8,也就是 UTC+8。美国是 UTC-5。

Calendar Time

:日历时间,是用 从一个标准时间点到此时的时间经过的秒数 来表示的

时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标
准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,

所以可以说日历时间是 相对时间 ,但是无论你在哪一个时区,在同一时刻对同一个标
准时间点来说,日历时间都是一样的。

epoch:时间点。时间点在标准 C/C++中是一个整数,它用此时的时间和标准时间点相差
的秒数(即日历时间)来表示。

clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长
短是由 CPU 控制的。一个 clock tick 不是 CPU 的一个时钟周期,而是 C/C++的一个基本计
时单位。

我们可以使用 ANSI 标准库中的 time.h 头文件。这个头文件中定义的时间和日期所使用的
方法,无论是在结构定义,还是命名,都具有明显的 C 语言风格。下面,我将说明在
C/C++中怎样使用日期的时间功能。

2

 

. 计时

C/C++中的计时函数是 clock(),而与其相关的数据类型是 clock_t。在 MSDN 中,查得对