21xrx.com
2024-09-19 09:46:43 Thursday
登录
文章检索 我的文章 写文章
如何在C++中输出年月日?
2023-07-04 18:11:24 深夜i     --     --
C++ 输出 年月日

在C++中输出年月日需要用到一些特定的函数和格式化字符串。下面介绍几种不同的方法。

1. 使用ctime库

ctime库中的函数可以将当前的日期和时间转化为一个字符串,其中包含了年月日、时分秒等信息。具体步骤如下:


#include <iostream>

#include <ctime>

int main()

{

  time_t now = time(0);

  char* dt = ctime(&now);

  std::cout << "The local date and time is: " << dt << std::endl;

  return 0;

}

在上面的代码中,`time_t`是表示日期和时间的类型,`time()`函数可以获取当前的日期和时间,`ctime()`函数可以将`time_t`类型的值转化为一个表示日期和时间的字符串,最后用`cout`输出即可。

2. 使用iomanip库

iomanip库中有一些格式控制符可以用于输出日期和时间等信息,如`setw`、`setfill`、`put_time`等。具体步骤如下:


#include <iostream>

#include <iomanip>

#include <chrono>

int main()

{

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

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

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

  std::cout << "The local date is: " << std::put_time(&tm, "%Y.%m.%d") << std::endl;

  return 0;

}

在上面的代码中,`chrono`库可以获取系统时钟,`to_time_t()`函数可以将一个`chrono`类型的值转化为`time_t`类型的值,`tm`结构体中包含了年月日等信息,然后用`put_time`函数将`tm`结构体格式化为字符串,最后用`cout`输出即可。

3. 使用strftime函数

`strftime`函数可以将一个`tm`类型的值格式化为一个自定义的字符串。具体步骤如下:


#include <iostream>

#include <ctime>

int main()

{

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

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

  char date[100];

  std::strftime(date, 100, "%Y-%m-%d", &tm);

  std::cout << "The current date is: " << date << std::endl;

  return 0;

}

在上面的代码中,`strftime`函数的第二个参数表示输出字符串的最大长度,第三个参数是表示日期格式的字符串,例如`%Y`表示年份,`%m`表示月份,`%d`表示日,具体含义可以参考C++的官方文档。最后用`cout`输出即可。

总结

以上三种方法都可以用于在C++中输出年月日,其中使用`iomanip`库和`strftime`函数比较灵活,可以自定义输出格式,而使用`ctime`库比较简单,可以直接将日期和时间转化为字符串输出。可以根据自己的需要选择不同的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复