fix time conversion

This commit is contained in:
Scott E. Graves 2024-09-26 09:20:13 -05:00
parent 0089866142
commit af8e2cddcb
2 changed files with 6 additions and 5 deletions

View File

@ -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<std::uint64_t>(mktime(&tm1)) *
utils::time::NANOS_PER_SECOND);
#endif // defined(_WIN32)
}
auto s3_provider::create_directory_impl(const std::string &api_path,

View File

@ -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<FILETIME *>(&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)