This commit is contained in:
Scott E. Graves 2024-09-26 10:47:07 -05:00
parent f905de7c42
commit b26788819e
2 changed files with 7 additions and 5 deletions

View File

@ -64,11 +64,12 @@ auto s3_provider::convert_api_date(std::string_view date) -> std::uint64_t {
auto date_parts = utils::string::split(date, '.', true);
auto date_time = date_parts.at(0U);
auto nanos = utils::string::to_uint64(
utils::string::split(date_parts.at(1U), 'Z', true).at(0U));
utils::string::split(date_parts.at(1U), 'Z', true).at(0U)) *
1000000UL;
struct tm tm1 {};
#if defined(_WIN32)
utils::time::strptime(date_time.c_str(), "%Y-%m-%dT%T", &tm1);
utils::time::strptime(date_time.c_str(), "%Y-%m-%dT%H:%M:%S", &tm1);
return nanos + utils::time::windows_time_t_to_unix_time(mktime(&tm1));
#else // !defined(_WIN32)
strptime(date_time.c_str(), "%Y-%m-%dT%T", &tm1);

View File

@ -28,8 +28,9 @@ namespace repertory {
#if defined(_WIN32)
TEST(utils, convert_api_date) {
LARGE_INTEGER li{};
li.QuadPart = static_cast<std::uint64_t>(utils::time::unix_time_to_windows_time(
s3_provider::convert_api_date("2009-10-12T17:50:30.000Z")));
li.QuadPart =
static_cast<std::int64_t>(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);
@ -44,7 +45,7 @@ TEST(utils, convert_api_date) {
EXPECT_EQ(17, lt.wHour);
EXPECT_EQ(50, lt.wMinute);
EXPECT_EQ(30, lt.wSecond);
EXPECT_EQ(0, lt.wMilliseconds);
EXPECT_EQ(111, lt.wMilliseconds);
}
#endif // defined(_WIN32)