C++ 编程/代码/标准 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
语法 |
#include <ctime>
clock_t clock( void );
|
clock() 函数返回程序启动以来的处理器时间,如果该信息不可用,则返回 -1。要将返回值转换为秒,请将其除以 CLOCKS_PER_SEC。
语法 |
#include <ctime>
char *ctime( const time_t *time );
|
ctime() 函数将日历时间 time 转换为以下格式的本地时间
day month date hours:minutes:seconds year
使用 ctime() 等同于
asctime( localtime( tp ) );
语法 |
#include <ctime>
double difftime( time_t time2, time_t time1 );
|
difftime() 函数以秒为单位返回 time2 - time1。
语法 |
#include <ctime>
struct tm *gmtime( const time_t *time );
|
gmtime() 函数以协调世界时 (通常为格林尼治标准时间) 返回给定的时间,除非系统不支持,在这种情况下返回 NULL。注意 静态返回。
语法 |
#include <ctime>
struct tm *localtime( const time_t *time );
|
localtime() 函数将日历时间 time 转换为本地时间。注意 静态返回。
语法 |
#include <ctime>
time_t mktime( struct tm *time );
|
mktime() 函数将 time 中的本地时间转换为日历时间,并返回它。如果发生错误,则返回 -1。
语法 |
#include <clocale>
char *setlocale( int category, const char * locale );
|
setlocale() 函数用于设置和检索当前区域设置。如果 locale 为 NULL,则返回当前区域设置。否则,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 | 时区名称 |
%% | 百分号 |
语法 |
#include <ctime>
time_t time( time_t *time );
|
time() 函数返回当前时间,如果出现错误则返回 -1。如果给定了 time 参数,则当前时间将存储在 time 中。