跳转到内容

C++ 编程/代码/标准 C 库/时间和日期

来自 Wikibooks,开放世界中的开放书籍

标准 C 时间和日期

[编辑 | 编辑源代码]

本节将涵盖 C 标准库中时间和日期元素。

语法
#include <ctime>
char *asctime( const struct tm *ptr );

asctime() 函数将 struct 'ptr' 中的时间转换为以下格式的字符字符串

day month date hours:minutes:seconds year

示例

Mon Jun 26 12:03:53 2000
相关主题
clock - ctime - difftime - gmtime - localtime - mktime - time
语法
#include <ctime>
clock_t clock( void );

clock() 函数返回程序启动以来的处理器时间,如果该信息不可用,则返回 -1。要将返回值转换为秒,请将其除以 CLOCKS_PER_SEC

注意
如果您的编译器和库符合 POSIX 标准,则 CLOCKS_PER_SEC 始终定义为 1000000。

相关主题
asctime - ctime - time
语法
#include <ctime>
char *ctime( const time_t *time );

ctime() 函数将日历时间 time 转换为以下格式的本地时间

day month date hours:minutes:seconds year            

使用 ctime() 等同于

asctime( localtime( tp ) );
相关主题
asctime - clock - gmtime - localtime - mktime - time
语法
#include <ctime>
double difftime( time_t time2, time_t time1 );

difftime() 函数以秒为单位返回 time2 - time1

相关主题
asctime - gmtime - localtime - time
语法
#include <ctime>
struct tm *gmtime( const time_t *time );

gmtime() 函数以协调世界时 (通常为格林尼治标准时间) 返回给定的时间,除非系统不支持,在这种情况下返回 NULL。注意 静态返回

相关主题
asctime - ctime - difftime - localtime - mktime - strftime - time

localtime

[编辑 | 编辑源代码]
语法
#include <ctime>
struct tm *localtime( const time_t *time );

localtime() 函数将日历时间 time 转换为本地时间。注意 静态返回

相关主题
asctime - ctime - difftime - gmtime - strftime - time
语法
#include <ctime>
time_t mktime( struct tm *time );

mktime() 函数将 time 中的本地时间转换为日历时间,并返回它。如果发生错误,则返回 -1。

相关主题
asctime - ctime - gmtime - time

setlocale

[编辑 | 编辑源代码]
语法
#include <clocale>
char *setlocale( int category, const char * locale );

setlocale() 函数用于设置和检索当前区域设置。如果 localeNULL,则返回当前区域设置。否则,locale 用于为给定的 category 设置区域设置。

category 可以具有以下值

描述
LC_ALL 所有区域设置
LC_TIME 日期和时间格式
LC_NUMERIC 数字格式
LC_COLLATE 字符串排序和正则表达式匹配
LC_CTYPE 正则表达式匹配、转换、区分大小写的比较、宽字符函数和字符分类。
LC_MONETARY 用于货币格式
LC_MESSAGES 用于自然语言消息
相关主题
(标准 C 字符串和字符) strcoll
语法
#include <ctime>
size_t strftime( char *str, size_t maxsize, const char *fmt, struct tm *time );

strftime() 函数根据 fmt 指定的格式,将 time 中的日期和时间信息格式化为字符串,然后将结果存储在 str 中(最多 maxsize 个字符)。可以在 fmt 中使用某些代码来指定不同类型的 time

代码 含义
%a 缩写星期名称 (例如 Fri)
%A 完整星期名称 (例如 Friday)
%b 缩写月份名称 (例如 Oct)
%B 完整月份名称 (例如 October)
%c 标准日期和时间字符串
%d 月份中的日期,作为带前导零的数字 (01-31)
%-d 月份中的日期,作为不带前导零的数字 (1-31)
%H 小时,24 小时制 (0-23)
%I 小时,12 小时制 (1-12)
%j 一年中的日期,作为数字 (1-366)
%m 月份作为数字 (1-12)。
%M 分钟作为数字 (0-59)
%p 区域设置的 AM 或 PM 等效项
%S 秒作为数字 (0-59)
%U 一年中的星期,(0-53),其中第一周的第一天是星期日
%w 星期几作为十进制数 (0-6),其中星期日为 0
%W 一年中的星期,(0-53),其中第一周的第一天是星期一
%x 标准日期字符串
%X 标准时间字符串
%y 年份以十进制表示,不带世纪 (0-99)
%Y 年份以十进制表示,带世纪
%Z 时区名称
%% 百分号

注意
某些版本的 Microsoft Visual C++ 可能使用 0-11 之间的数值来描述 %m(月份的数字表示)。

相关主题
gmtime - localtime - time
语法
#include <ctime>
time_t time( time_t *time );

time() 函数返回当前时间,如果出现错误则返回 -1。如果给定了 time 参数,则当前时间将存储在 time 中。

相关主题
asctime - clock - ctime - difftime - gmtime - localtime - mktime - strftime
(其他标准 C 函数)srand - 预处理宏 __DATE__ 和 __TIME__
华夏公益教科书