39 const std::chrono::system_clock::time_point& tp
41 auto time_t = std::chrono::system_clock::to_time_t(tp);
45 localtime_s(&tm_buf, &time_t);
47 localtime_r(&time_t, &tm_buf);
52 std::strftime(buffer,
sizeof(buffer),
"%Y-%m-%d %H:%M:%S", &tm_buf);
55 auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
59 std::ostringstream oss;
61 << std::setfill(
'0') << std::setw(3) << ms.count();
77 const std::chrono::system_clock::time_point& tp
79 auto time_t = std::chrono::system_clock::to_time_t(tp);
83 gmtime_s(&tm_buf, &time_t);
85 gmtime_r(&time_t, &tm_buf);
90 std::strftime(buffer,
sizeof(buffer),
"%Y-%m-%dT%H:%M:%S", &tm_buf);
93 auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
97 std::ostringstream oss;
99 << std::setfill(
'0') << std::setw(3) << ms.count()
116 const std::chrono::system_clock::time_point& tp
118 auto time_t = std::chrono::system_clock::to_time_t(tp);
122 localtime_s(&tm_buf, &time_t);
124 localtime_r(&time_t, &tm_buf);
129 std::strftime(buffer,
sizeof(buffer),
"%Y%m%d%H%M%S", &tm_buf);
132 auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
133 tp.time_since_epoch()
136 std::ostringstream oss;
138 << std::setfill(
'0') << std::setw(3) << ms.count();
157 const std::chrono::system_clock::time_point& tp,
158 bool include_hour =
false
160 auto time_t = std::chrono::system_clock::to_time_t(tp);
164 localtime_s(&tm_buf, &time_t);
166 localtime_r(&time_t, &tm_buf);
171 std::strftime(buffer,
sizeof(buffer),
"%Y%m%d_%H", &tm_buf);
173 std::strftime(buffer,
sizeof(buffer),
"%Y%m%d", &tm_buf);
176 return std::string(buffer);
185 static std::chrono::system_clock::time_point
now() {
186 return std::chrono::system_clock::now();
Time utility functions for timestamp formatting.
static std::string format_timestamp(const std::chrono::system_clock::time_point &tp)
Format timestamp to human-readable format (YYYY-MM-DD HH:MM:SS.mmm)
static std::string format_iso8601(const std::chrono::system_clock::time_point &tp)
Format timestamp to ISO 8601 / RFC 3339 format with UTC timezone.
static std::string format_for_rotation(const std::chrono::system_clock::time_point &tp, bool include_hour=false)
Format timestamp for file rotation (YYYYMMDD or YYYYMMDD_HH)
static std::chrono::system_clock::time_point now()
Get current system time as time_point.
static std::string format_compact(const std::chrono::system_clock::time_point &tp)
Format timestamp to compact format (YYYYMMDDHHMMSSmmm)