C+中是否有标准的日期/时间类+;? C++的STL是否有标准的时间类?或者在写入流之前必须转换为c字符串。例如,我想将当前日期/时间输出到字符串流: time_t tm(); ostringstream sout; sout << tm << ends; time_t tm(); 奥斯汀河南区; sout

C+中是否有标准的日期/时间类+;? C++的STL是否有标准的时间类?或者在写入流之前必须转换为c字符串。例如,我想将当前日期/时间输出到字符串流: time_t tm(); ostringstream sout; sout << tm << ends; time_t tm(); 奥斯汀河南区; sout,c++,datetime,stl,stream,C++,Datetime,Stl,Stream,还有一种(&time_t)方法可以输出字符串(char*)。不是STL的一部分,但众所周知的库是boost 我会选择使用boost::date。以下是一些示例: 如果您还没有尝试boost,我鼓励您这样做,因为它可以让您避免许多棘手的问题,因为它掩盖了大多数依赖操作系统的事情,例如线程。boost中的许多内容仅限于标题(模板库)。然而,datetime需要一个库或dll。挑剔:STL作为标准的模板库处理通用容器和算法等,即使在将来也不太可能合并用于日期处理和计算的类 C++标准库本身包括STL

还有一种(&time_t)方法可以输出字符串(char*)。

不是STL的一部分,但众所周知的库是boost

我会选择使用
boost::date
。以下是一些示例:


如果您还没有尝试boost,我鼓励您这样做,因为它可以让您避免许多棘手的问题,因为它掩盖了大多数依赖操作系统的事情,例如线程。
boost
中的许多内容仅限于标题(模板库)。然而,datetime需要一个库或dll。

挑剔:STL作为标准的模板库处理通用容器和算法等,即使在将来也不太可能合并用于日期处理和计算的类

C++标准库本身包括STL和C标准库的以前版本。后者通过上文已经提到的

#include
提供一些与日期和时间相关的功能


如果包装(或简单地使用)这些函数比拉入足够(更快),那么就使用这些函数。它们没有问题。

好的。这里是我发现的最接近于直接向流写入时间的地方:

time_t t(time(NULL));   // current time
tm tm(*localtime(&t));  

std::locale loc("");    // current user locale
ostringstream sout;
const std::time_put<TCHAR> &tput =
    std::use_facet<std::time_put<TCHAR> >(loc);
tput.put(sout.rdbuf(), sout, _T('\0'), &tm, _T('x'));
sout << ends;

CString sTest(sout.str().c_str());
time_t t(time(NULL));//当前时间
tm(*本地时间(&t));
std::locale loc(“”;//当前用户区域设置
奥斯汀河南区;
常数标准::时间输出和输出=
标准::使用切面(loc);
tput.put(sout.rdbuf(),sout,_T('\0'),&tm,_T('x'));

southeader中有和(我猜它们是C++11附带的),可以有效地进行字符串格式化或解析工作。

C++现在有用于日期和时间的chrono库。
这是在和上记录的,除非您需要确切的日期/时间格式,否则没有什么帮助。然而,看着它只会让我发抖;我认为我不想在应用程序中看到这一点。现在有一个建议,建议在委员会之前完成一个完整的和现代化的C++日期/时间/时区。此建议基于此github存储库:它有完整的实现、完整的文档和活跃的用户社区。上面的评论中提到的库现在是C++20规范草案的一部分。