22 auto current_time = std::chrono::system_clock::now();
23 std::time_t calendar_time = std::chrono::system_clock::to_time_t(current_time);
24 std::ostringstream timestamp_stream;
25 timestamp_stream << std::put_time(std::localtime(&calendar_time),
"%Y-%m-%dT%H:%M:%S%z");
26 std::string timestamp_string = timestamp_stream.str();
28 if (timestamp_string.length() >= 5) {
29 std::string timezone_offset = timestamp_string.substr(timestamp_string.length() - 5);
30 if ((timezone_offset[0] ==
'+' || timezone_offset[0] ==
'-') &&
31 std::isdigit(timezone_offset[1]) && std::isdigit(timezone_offset[2]) &&
32 std::isdigit(timezone_offset[3]) && std::isdigit(timezone_offset[4])) {
33 timestamp_string = timestamp_string.substr(0, timestamp_string.length() - 2) +
":" +
34 timestamp_string.substr(timestamp_string.length() - 2);
37 return timestamp_string;