9.5.3 相关时间函数
本小节将详细讲述和时间有关的9个函数及其使用方法。
1)asctime()函数。此函数用于将指定的时间以字符串(英文简写)形式输出。
2)ctime()函数。此函数用于将指定时间以字符串形式输出,并遵从本地时区设置。
3)clock()函数。此函数的返回值是硬件嘀嗒数,需要换算成s或者ms,通常需要除以CLK_TCK或者CLOCKS_PER_SEC。例如,在Visual C++ 6.0环境下,这两个宏的值均为1000,表示硬件嘀嗒1000次所耗时间是1s。因此,当需要计算进程所耗时间时,可以连续调用两次clock(),所获得两个时间之差即为所耗时间。如果需要折算成秒,需要用硬件嘀嗒数除以1000即可,如果不满1s,可以计算出更精确地时间(ms):十分之几秒、百分之几秒、千分之几秒等。
4)difftime()函数。此函数返回两个time_t型参数(时刻)之间的时间差。
5)gmtime()函数。gmtime(consttime_t∗)函数用于将参数传递的时刻转换为格林威治时间。返回值保存在tm结构体中。结构体tm中的成员定义在上文中已经阐述。格林威治标准时间指的是位于英国伦敦郊区的皇家格林威治天文台的标准时间,因为“本初子午线”被定义为通过该处的经线。自1924年2月5日开始,格林威治天文台每隔1h会向全世界发放调时信息。1999年12月28日,一种新的时间系统——格林威治电子时间正式诞生,从而为全球电子商务提供了一个时间标准。原有的格林威治时间(GMT)仍予以保留,作为21世纪的世界标准时间。
6)localtime()函数。此函数的功能是把从1970年1月1日零时零分到当前时间系统所偏移的秒数时间转换为日历时间(本地时区时间)。其返回值是time_t结构体。此结构体中包含了本地时区的时间。
7)mktime()函数。此函数的功能是将当前的日历时间转换为从1970年1月1日零时零分起至今的UTC时间经过的秒数。UTC时间的中文名称为“协调世界时”,又称“世界统一时间”“世界标准时间”或“国际协调时间”,简称UTC。其英文全称为“Coordinated Universal Time”。
8)time()函数。此函数的功能是获取当前系统(计算机)时间,其返回的结果保存在time_t结构体中。此结果其实是一个长整数,其数值表示从1970年1月1日零时零分至当前时间的秒数。可使用函数localtime()将该时间转换为本地(本时区)时间,并转成tm结构体,该类型的数据成员分别表示年、月、日、时、分和秒。
9)strftime()函数。此函数的功能是根据区域设置格式化本地时间/日期,即将时间格式化,或者说格式化一个时间字符串。strftime()函数的操作类似于sprintf(),即识别以%开始的格式命令集合,格式化输出结果并保存在一个字符串中。格式化命令说明串strDest中各种日期和时间信息的确切表示方法。格式串中的其他字符按原样放进串中。格式命令包含很多种,并且是区分大小写的,详见表9-8。
表9-8 格式命令及其说明
函数参数说明:
此函数的第一个参数是目标缓冲区,第二个参数是缓冲区大小,第三个参数输出格式,第四个参数是时间参数。