Time Shield Library
C++ library for working with time
Loading...
Searching...
No Matches
time_formatting_example.cpp
Go to the documentation of this file.
1
3
5
6#include <chrono>
7#include <iostream>
8
9int main() {
10 using namespace time_shield;
11
12 const std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
13 const ts_t now_sec = static_cast<ts_t>(std::chrono::system_clock::to_time_t(now));
14 const ts_ms_t now_ms = static_cast<ts_ms_t>(
15 std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count());
16 const tz_t utc_offset = 2 * SEC_PER_HOUR + 30 * SEC_PER_MIN;
17
18 std::cout << "ISO8601 UTC: " << to_iso8601(now_sec) << '\n';
19 std::cout << "ISO8601 UTC (ms): " << to_iso8601_ms(now_ms) << '\n';
20 std::cout << "ISO8601 with offset: " << to_iso8601(now_sec, utc_offset) << '\n';
21 std::cout << "Custom UTC format: "
22 << to_string("%Y-%m-%d %H:%M:%S", now_sec) << '\n';
23 std::cout << "Custom local format: "
24 << to_string("%Y-%m-%d %H:%M:%S %z", now_sec, utc_offset) << '\n';
25 std::cout << "Filename-safe string: " << to_windows_filename(now_sec) << '\n';
26
27 return 0;
28}
constexpr int64_t SEC_PER_HOUR
Seconds per hour.
constexpr int64_t SEC_PER_MIN
Seconds per minute.
const std::string to_string(const std::string &format_str, T timestamp, tz_t utc_offset=0)
Convert timestamp to string with custom format.
const std::string to_iso8601_ms(ts_ms_t ts_ms)
Converts a timestamp in milliseconds to an ISO8601 string.
const std::string to_windows_filename(ts_t ts)
Converts a timestamp in seconds to a Windows-compatible filename format.
const std::string to_iso8601(T ts)
Converts a timestamp to an ISO8601 string.
int64_t ts_t
Unix timestamp in seconds since 1970‑01‑01T00:00:00Z.
Definition types.hpp:49
int32_t tz_t
Time zone offset in minutes from UTC (e.g., +180 = UTC+3).
Definition types.hpp:61
int64_t ts_ms_t
Unix timestamp in milliseconds since epoch.
Definition types.hpp:50
ts_ms_t now() noexcept
Get the current UTC timestamp in milliseconds.
Main namespace for the Time Shield library.
Header file for time formatting utilities.