我编写了一个函数来获取当前日期和时间,格式为: DD-MM-YYYY HH:MM:SS
。它有效,但可以说,它非常丑陋。我怎样才能做 完全相同但更简单的事情?
string currentDateToString()
{
time_t now = time(0);
tm *ltm = localtime(&now);
string dateString = "", tmp = "";
tmp = numToString(ltm->tm_mday);
if (tmp.length() == 1)
tmp.insert(0, "0");
dateString += tmp;
dateString += "-";
tmp = numToString(1 + ltm->tm_mon);
if (tmp.length() == 1)
tmp.insert(0, "0");
dateString += tmp;
dateString += "-";
tmp = numToString(1900 + ltm->tm_year);
dateString += tmp;
dateString += " ";
tmp = numToString(ltm->tm_hour);
if (tmp.length() == 1)
tmp.insert(0, "0");
dateString += tmp;
dateString += ":";
tmp = numToString(1 + ltm->tm_min);
if (tmp.length() == 1)
tmp.insert(0, "0");
dateString += tmp;
dateString += ":";
tmp = numToString(1 + ltm->tm_sec);
if (tmp.length() == 1)
tmp.insert(0, "0");
dateString += tmp;
return dateString;
}
原文由 Katie 发布,翻译遵循 CC BY-SA 4.0 许可协议
非 C++11 解决方案:使用
<ctime>
标头,您可以使用strftime
。确保您的缓冲区足够大,您不会希望超出它并在以后造成严重破坏。