From af8e2cddcbd2e8f5f1d4289f9fd40a908f1bbe6b Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Thu, 26 Sep 2024 09:20:13 -0500 Subject: [PATCH] fix time conversion --- repertory/librepertory/src/providers/s3/s3_provider.cpp | 6 +++--- repertory/repertory_test/src/utils_test.cpp | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/repertory/librepertory/src/providers/s3/s3_provider.cpp b/repertory/librepertory/src/providers/s3/s3_provider.cpp index b91dcbd7..b1f1b7e1 100644 --- a/repertory/librepertory/src/providers/s3/s3_provider.cpp +++ b/repertory/librepertory/src/providers/s3/s3_provider.cpp @@ -69,12 +69,12 @@ auto s3_provider::convert_api_date(std::string_view date) -> std::uint64_t { struct tm tm1 {}; #if defined(_WIN32) utils::time::strptime(date_time.c_str(), "%Y-%m-%dT%T", &tm1); -#else + return utils::time::windows_time_t_to_unix_time(mktime(&tm1)) + nanos; +#else // !defined(_WIN32) strptime(date_time.c_str(), "%Y-%m-%dT%T", &tm1); -#endif - return nanos + (static_cast(mktime(&tm1)) * utils::time::NANOS_PER_SECOND); +#endif // defined(_WIN32) } auto s3_provider::create_directory_impl(const std::string &api_path, diff --git a/repertory/repertory_test/src/utils_test.cpp b/repertory/repertory_test/src/utils_test.cpp index 100cdadc..96b74e0c 100644 --- a/repertory/repertory_test/src/utils_test.cpp +++ b/repertory/repertory_test/src/utils_test.cpp @@ -28,7 +28,8 @@ namespace repertory { #if defined(_WIN32) TEST(utils, convert_api_date) { LARGE_INTEGER li{}; - li.QuadPart = s3_provider::convert_api_date("2009-10-12T17:50:30.111Z"); + li.QuadPart = utils::time::unix_time_to_windows_time( + s3_provider::convert_api_date("2009-10-12T17:50:30.111Z")); SYSTEMTIME st{}; FileTimeToSystemTime(reinterpret_cast(&li), &st); @@ -42,7 +43,7 @@ TEST(utils, convert_api_date) { EXPECT_EQ(17, lt.wHour); EXPECT_EQ(50, lt.wMinute); - EXPECT_EQ(20, lt.wSecond); + EXPECT_EQ(30, lt.wSecond); EXPECT_EQ(111, lt.wMilliseconds); } #endif // defined(_WIN32)