述说C++日期格式参数说明(C++日期格式参数详解)

原创
ithorizon 6个月前 (10-19) 阅读数 24 #后端开发

C++日期格式参数说明

一、引言

在C++中处理日期和时间时,我们通常会使用标准库中的<ctime><chrono>头文件。这些库提供了充足的功能来处理日期和时间。在格式化日期和时间时,C++提供了多种参数来控制输出格式,这些参数通常与strftime函数或std::put_time函数一起使用。本文将详细解释C++中日期格式的参数及其用法。

二、strftime函数

strftime函数是C标准库中的一个函数,用于将时间格式化为字符串。该函数原型如下:

char *strftime(char *s, size_t max, const char *format, const struct tm *tm);

其中:

  • s:指向用于存储格式化后字符串的数组的指针。
  • max:指定数组s的最大长度。
  • format:指向包含格式化指令的字符串的指针。
  • tm:指向包含时间信息的tm结构体的指针。

三、日期格式参数详解

下面是strftime函数中常用的日期格式参数及其说明:

3.1 百分号(%)

百分号用作特殊字符的前缀,用于引入转换说明符。

3.2 年份

  • %Y:四位数的年份(例如,2023)。
  • %y:两位数的年份(例如,23)。

3.3 月份

  • %m:月份(01-12)。
  • %b:缩写月份名(例如,Jan)。
  • %B:完整月份名(例如,January)。

3.4 日

  • %d:月份中的日(01-31)。
  • %e:月份中的日,空格前导(1-31)。
  • %a:缩写星期名(例如,Sun)。
  • %A:完整星期名(例如,Sunday)。

3.5 时间

  • %H:24小时制的小时数(00-23)。
  • %I:12小时制的小时数(01-12)。
  • %M:分钟数(00-59)。
  • %S:秒数(00-60)。
  • %p:本地AM/PM。

3.6 时区

  • %z:数字时区(例如,-0800)。
  • %Z:时区名称(如果存在)。

3.7 其他

  • %c:本地日期和时间。
  • %D:美国格式日期(mm/dd/yy)。
  • %F:ISO 8601日期(yyyy-mm-dd)。
  • %R:24小时制的时间(HH:MM)。
  • %r:12小时制的时间(HH:MM:SS AM/PM)。
  • %T:24小时制的时间(HH:MM:SS)。
  • %X:本地时间,不包括日期。
  • %x:本地日期,不包括时间。

四、示例

以下是一个使用strftime函数的示例,演示怎样格式化日期和时间:

#include

#include

int main() {

// 获取当前时间

std::time_t t = std::time(nullptr);

// 将time_t演化为tm结构体

std::tm tm = *std::localtime(&t);

// 创建一个字符数组用于存储格式化后的时间

char buffer[100];

// 格式化日期和时间

std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &tm);

// 输出格式化后的日期和时间

std::cout << "Current time: " << buffer << std::endl;

return 0;

}

上述代码将输出当前时间,格式为“年-月-日 时:分:秒”。

五、std::put_time函数

从C++11起初,C++标准库引入了<chrono>头文件,提供了std::put_time函数,用于格式化时间。该函数的使用如下:

#include

#include

#include

int main() {

// 获取当前系统时间

auto now = std::chrono::system_clock::now();

// 演化为time_t

std::time_t now_c = std::chrono::system_clock::to_time_t(now);

// 演化为tm结构体

std::tm now_tm = *std::localtime(&now_c);

// 输出格式化后的日期和时间

std::cout << "Current time: "

<< std::put_time(&now_tm, "%Y-%m-%d %H:%M:%S")

<< std::endl;

return 0;

}

上述代码同样输出当前时间,但使用了C++11的<chrono>库。

六、总结

在C++中,日期和时间的格式化是一个常用的功能,通过使用strftime函数和<chrono>库的std::put_time函数,我们可以轻松地控制日期和时间的输出格式。了解并掌握这些日期格式参数,可以帮助我们更好地处理和展示时间信息。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门