gpt4 book ai didi

C++:获取当前时间作为 W3C UTC 时间字符串

转载 作者:可可西里 更新时间:2023-11-01 11:55:59 26 4
gpt4 key购买 nike

如何获取当前时间作为 W3C UTC 时间字符串,如 W3C Date and Time Formats (Profile of ISO 8601) 中所述?

具体来说,这是我所追求的格式:

yyyy-mm-ddThh:mm:ssZ

例子:

2013-05-24T20:07:47Z

注意:我使用的是 Visual Studio 2010

最佳答案

这是我的解决方案。 Visual Studio 2010 引用:time() , gmtime_s()

#include <iomanip>
#include <sstream>
#include <time.h>

/**
* Get the current time as a W3C UTC time string.
*
* @return A time string; the empty string if something goes wrong.
*/
std::string GetUTCTimeString(void)
{
time_t seconds_since_the_epoch;
struct tm tm_struct;
errno_t err;
std::ostringstream buf;

// Return the time as seconds elapsed since midnight, January 1, 1970,
// or -1 in the case of an error.
time(&seconds_since_the_epoch);

if (seconds_since_the_epoch == -1) {
return "";
}

// Convert the time in seconds to the time structure.
err = gmtime_s(&tm_struct, &seconds_since_the_epoch);

if (err) {
return "";
}

// Format the structure as a W3C UTC date/time string with the special
// UTC designator 'Z'.
buf
<< std::setw(4) << std::setfill('0') << tm_struct.tm_year + 1900
<< "-" << std::setw(2) << std::setfill('0') << tm_struct.tm_mon + 1
<< "-" << std::setw(2) << std::setfill('0') << tm_struct.tm_mday
<< "T" << std::setw(2) << std::setfill('0') << tm_struct.tm_hour
<< ":" << std::setw(2) << std::setfill('0') << tm_struct.tm_min
<< ":" << std::setw(2) << std::setfill('0') << tm_struct.tm_sec
<< "Z";

return buf.str();
}

关于C++:获取当前时间作为 W3C UTC 时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com