From d39d84e169e9c7ac7b90c3c0da5b2578b104c573 Mon Sep 17 00:00:00 2001 From: Commander Red Date: Fri, 2 Jun 2023 10:46:13 +0200 Subject: [PATCH 1/2] Fix toString() --- src/espchrono.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/espchrono.cpp b/src/espchrono.cpp index 6d25e28..a5fa838 100644 --- a/src/espchrono.cpp +++ b/src/espchrono.cpp @@ -262,7 +262,7 @@ std::expected parseDaypoint(std::string_view std::string toString(const DateTime &dateTime) { - return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}", + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}Z", int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond); } @@ -271,7 +271,7 @@ std::string toString(const LocalDateTime &dateTime) { date::hh_mm_ss helper{dateTime.timezone.offset + hours32{dateTime.dst ? 1 : 0}}; - return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03} {}{:02}:{:02}", + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}{}{:02}:{:02}", int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond, helper.is_negative() ? "-" : "+", uint8_t(helper.hours().count()), uint8_t(helper.minutes().count())); -- 2.50.1 From 9395718ce248a5b195dcba880f900ce31ed867e2 Mon Sep 17 00:00:00 2001 From: Commander Red Date: Sat, 3 Jun 2023 13:47:35 +0200 Subject: [PATCH 2/2] Fix so it will be compatible --- src/espchrono.cpp | 20 +++++++++++++++++++- src/espchrono.h | 4 ++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/espchrono.cpp b/src/espchrono.cpp index a5fa838..b57893a 100644 --- a/src/espchrono.cpp +++ b/src/espchrono.cpp @@ -262,7 +262,7 @@ std::expected parseDaypoint(std::string_view std::string toString(const DateTime &dateTime) { - return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}Z", + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}", int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond); } @@ -271,12 +271,30 @@ std::string toString(const LocalDateTime &dateTime) { date::hh_mm_ss helper{dateTime.timezone.offset + hours32{dateTime.dst ? 1 : 0}}; + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03} {}{:02}:{:02}", + int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, + dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond, + helper.is_negative() ? "-" : "+", uint8_t(helper.hours().count()), uint8_t(helper.minutes().count())); +} + +std::string toISOString(const DateTime &dateTime) +{ + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}Z", + int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, + dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond); +} + +std::string toISOString(const LocalDateTime &dateTime) +{ + date::hh_mm_ss helper{dateTime.timezone.offset + hours32{dateTime.dst ? 1 : 0}}; + return fmt::format("{:04}-{:02}-{:02}T{:02}:{:02}:{:02}.{:03}{}{:02}:{:02}", int{dateTime.date.year()}, unsigned{dateTime.date.month()}, unsigned{dateTime.date.day()}, dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond, helper.is_negative() ? "-" : "+", uint8_t(helper.hours().count()), uint8_t(helper.minutes().count())); } + std::string toDaypointString(std::chrono::seconds seconds) { date::hh_mm_ss helper(seconds); diff --git a/src/espchrono.h b/src/espchrono.h index eaaa780..7fd8469 100644 --- a/src/espchrono.h +++ b/src/espchrono.h @@ -204,6 +204,10 @@ std::string toString(const DateTime &dateTime); std::string toString(const LocalDateTime &dateTime); +std::string toISOString(const DateTime &dateTime); + +std::string toISOString(const LocalDateTime &dateTime); + std::string toDaypointString(std::chrono::seconds seconds); std::chrono::microseconds ago(millis_clock::time_point a); -- 2.50.1