diff --git a/frame_serialize/CBORStream2Deserializer.cpp b/frame_serialize/CBORStream2Deserializer.cpp index 2a598de6..06241be0 100644 --- a/frame_serialize/CBORStream2Deserializer.cpp +++ b/frame_serialize/CBORStream2Deserializer.cpp @@ -85,8 +85,14 @@ namespace { return GetCBORString(value); else if (tag == CborUnixTime_tTag) { time_t t = GetCBORUInt(value); + struct tm tm_buf{}; +#ifdef _WIN32 + gmtime_s(&tm_buf, &t); +#else + gmtime_r(&t, &tm_buf); +#endif char buf1[255]; - strftime(buf1, sizeof(buf1), "%FT%T", gmtime(&t)); + strftime(buf1, sizeof(buf1), "%FT%T", &tm_buf); return std::string(buf1) + "Z"; } else throw JFJochException(JFJochExceptionCategory::CBORError, "Time/date tag error");