C++ 简单输出当前日期时间
1. 时间相关数据类型
一个是time_t,与时间函数相关的变量,定义的变量记录着自 1970 年 1 月 1 日以来经过的秒数,也称作时间戳。
另一个是结构体tm
struct tm
{
   int tm_sec;         // 秒,范围从 0 到 59
   int tm_min;         // 分,范围从 0 到 59
   int tm_hour;        // 小时,范围从 0 到 23
   int tm_mday;        // 一月中的第几天,范围从 1 到 31
   int tm_mon;         // 月份,范围从 0 到 11
   int tm_year;        // 自 1900 起的年数
   int tm_wday;        // 一周中的第几天,范围从 0 到 6
   int tm_yday;        // 一年中的第几天,范围从 0 到 365
   int tm_isdst;       // 夏令时
};
2. 时间相关处理函数
time_t time(time_t *time);
一般使用time(NULL)即可,可得到当前时区的时间戳。
struct tm *localtime(const time_t *timer);
将time_t类型转换为本地时间的 tm 结构的指针。
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
str -- 这是指向目标数组的指针,用来复制产生的 C 字符串。
maxsize -- 这是被复制到 str 的最大字符数。
format -- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合。这些格式说明符由函数替换为表示 tm 中所指定时间的相对应值。
格式说明符:
| 说明符 | 含义 | 实例 | 
|---|---|---|
| %a | 缩写的星期几名称 | Sun | 
| %A | 完整的星期几名称 | Sunday | 
| %b | 缩写的月份名称 | Mar | 
| %B | 完整的月份名称 | March | 
| %c | 日期和时间表示法 | Sun Aug 19 02:56:02 2012 | 
| %d | 一月中的第几天(01-31) | 19 | 
| %H | 24 小时格式的小时(00-23) | 14 | 
| %I | 12 小时格式的小时(01-12) | 05 | 
| %j | 一年中的第几天(001-366) | 231 | 
| %m | 十进制数表示的月份(01-12) | 08 | 
| %M | 分(00-59) | 55 | 
| %p | AM 或 PM 名称 | PM | 
| %S | 秒(00-61) | 02 | 
| %U | 一年中的第几周,以第一个星期日作为第一周的第一天(00-53) | 33 | 
| %w | 十进制数表示的星期几,星期日表示为 0(0-6) | 4 | 
| %W | 一年中的第几周,以第一个星期一作为第一周的第一天(00-53) | 34 | 
| %x | 日期表示法 | 08/19/12 | 
| %X | 时间表示法 | 02:50:06 | 
| %y | 年份,最后两个数字(00-99) | 01 | 
| %Y | 年份 | 2012 | 
| %Z | 时区的名称或缩写 | CDT | 
| %% | 一个 % 符号 | % | 
3. 代码实现
char str[50];
time_t now = time(NULL);
strftime(str, 50, "%x %X", localtime(&now));
cout << str << endl;
参考文章
    版权声明:未经本人授权禁止转载,转载时请注明原博客链接,谢谢~(2021.6.13)

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号