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 cea9153..6909a15 100644 --- a/src/discord/snowflake.cpp +++ b/src/discord/snowflake.cpp @@ -2,6 +2,7 @@ #include <ctime> #include <iomanip> #include <chrono> +#include <glibmm.h> constexpr static uint64_t DiscordEpochSeconds = 1420070400; @@ -42,14 +43,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 0b79723..1cabf3d 100644 --- a/src/discord/snowflake.hpp +++ b/src/discord/snowflake.hpp @@ -12,7 +12,7 @@ struct Snowflake { static Snowflake FromNow(); // not thread safe bool IsValid() const; - std::string GetLocalTimestamp() const; + Glib::ustring GetLocalTimestamp() const; bool operator==(const Snowflake &s) const noexcept { return m_num == s.m_num; |