diff options
Diffstat (limited to 'src/discord')
-rw-r--r-- | src/discord/snowflake.cpp | 11 | ||||
-rw-r--r-- | src/discord/snowflake.hpp | 2 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/discord/snowflake.cpp b/src/discord/snowflake.cpp index 8f470a7..efa327d 100644 --- a/src/discord/snowflake.cpp +++ b/src/discord/snowflake.cpp @@ -3,6 +3,7 @@ #include <chrono> #include <ctime> #include <iomanip> +#include <glibmm.h> constexpr static uint64_t DiscordEpochSeconds = 1420070400; @@ -53,14 +54,12 @@ bool Snowflake::IsValid() const { return m_num != Invalid; } -std::string Snowflake::GetLocalTimestamp() const { +Glib::ustring Snowflake::GetLocalTimestamp() const { const time_t secs_since_epoch = (m_num / SecondsInterval) + DiscordEpochSeconds; const std::tm tm = *localtime(&secs_since_epoch); - std::stringstream ss; - const static std::locale locale(""); - ss.imbue(locale); - ss << std::put_time(&tm, "%X %x"); - return ss.str(); + std::array<char, 256> tmp; + std::strftime(tmp.data(), sizeof(tmp), "%X %x", &tm); + return tmp.data(); } void from_json(const nlohmann::json &j, Snowflake &s) { diff --git a/src/discord/snowflake.hpp b/src/discord/snowflake.hpp index f2da5d1..e83317a 100644 --- a/src/discord/snowflake.hpp +++ b/src/discord/snowflake.hpp @@ -13,7 +13,7 @@ struct Snowflake { static Snowflake FromISO8601(std::string_view ts); bool IsValid() const; - std::string GetLocalTimestamp() const; + Glib::ustring GetLocalTimestamp() const; bool operator==(const Snowflake &s) const noexcept { return m_num == s.m_num; |