From 0741471092e7ebc6fe2e0817400b2c6ae36cbf98 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sun, 16 Jul 2023 09:31:28 +0200 Subject: [PATCH] GetISO8601CurrentDateTime(): workaround on msys2 to fix a format issue. on msys2 the format %z is seen as %Z, which is not acceptable here. so %z format is removed on msys2 --- common/string_utils.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/string_utils.cpp b/common/string_utils.cpp index b2780b28b5..2280b9cdf5 100644 --- a/common/string_utils.cpp +++ b/common/string_utils.cpp @@ -663,7 +663,14 @@ char* GetLine( FILE* File, char* Line, int* LineNum, int SizeLine ) wxString GetISO8601CurrentDateTime() { + // on msys2 the %z format (offset from UTC in the ISO 8601 format, e.g. -0430) does not work, + // and is in fact %Z (locale-dependent time zone name or abbreviation) which breaks our date. + // so do not use it (until %z works) +#ifdef __MINGW32__ + return fmt::format( "{:%FT%T}", fmt::localtime( std::time( nullptr ) ) ); +#else return fmt::format( "{:%FT%T%z}", fmt::localtime( std::time( nullptr ) ) ); +#endif }