ISO8601-Zeit als std::string mit C++11 chrono
English
Deutsch
Du möchtest die chrono-Bibliothek des C++11-Standards verwenden, um einen ISO8601-formatierten Zeitstempel als std::string zu generieren, z.B. 2018-03-30T16:51:00Z
Lösung
Du kannst diese Funktion verwenden, die std::put_time mit einem std::ostringstream verwendet, um den resultierenden std::string zu generieren.
#include
iso8601_time.cpp
#include <iostream>
#include <chrono>
#include <iomanip>
#include <sstream>
/**
* Einen UTC-ISO8601-formatierten Zeitstempel generieren
* und als std::string zurückgeben
*/
std::string currentISO8601TimeUTC() {
auto now = std::chrono::system_clock::now();
auto itt = std::chrono::system_clock::to_time_t(now);
std::ostringstream ss;
ss << std::put_time(gmtime(&itt), "%FT%TZ");
return ss.str();
}
// Verwendungsbeispiel
int main() {
std::cout << currentISO8601TimeUTC() << std::endl;
}Check out similar posts by category:
C/C++
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow