summaryrefslogtreecommitdiff
path: root/src/discord
diff options
context:
space:
mode:
Diffstat (limited to 'src/discord')
-rw-r--r--src/discord/snowflake.cpp11
-rw-r--r--src/discord/snowflake.hpp2
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;