fix
This commit is contained in:
@ -51,6 +51,9 @@ void get_local_time_now(struct tm &local_time);
|
||||
auto strptime(const char *s, const char *f, struct tm *tm) -> const char *;
|
||||
|
||||
[[nodiscard]] auto unix_time_to_filetime(std::uint64_t unix_time) -> FILETIME;
|
||||
|
||||
[[nodiscard]] auto
|
||||
windows_time_t_to_unix_time(__time64_t win_time) -> std::uint64_t;
|
||||
#endif // defined(_WIN32)
|
||||
|
||||
[[nodiscard]] auto
|
||||
|
@ -75,8 +75,7 @@ auto i_fs_item::get_time(time_types type) const -> std::uint64_t {
|
||||
switch (type) {
|
||||
case time_types::access:
|
||||
#if defined(_WIN32)
|
||||
return utils::time::windows_time_to_unix_time(
|
||||
static_cast<std::uint64_t>(st.st_atime));
|
||||
return utils::time::windows_time_t_to_unix_time(st.st_atime);
|
||||
#else // !defined(_WIN32)
|
||||
return static_cast<std::uint64_t>(st.st_atim.tv_nsec +
|
||||
st.st_atim.tv_sec *
|
||||
@ -85,8 +84,7 @@ auto i_fs_item::get_time(time_types type) const -> std::uint64_t {
|
||||
|
||||
case time_types::creation:
|
||||
#if defined(_WIN32)
|
||||
return utils::time::windows_time_to_unix_time(
|
||||
static_cast<std::uint64_t>(st.st_ctime));
|
||||
return utils::time::windows_time_t_to_unix_time(st.st_ctime);
|
||||
#else // !defined(_WIN32)
|
||||
return static_cast<std::uint64_t>(st.st_ctim.tv_nsec +
|
||||
st.st_ctim.tv_sec *
|
||||
@ -95,8 +93,7 @@ auto i_fs_item::get_time(time_types type) const -> std::uint64_t {
|
||||
|
||||
case time_types::modified:
|
||||
#if defined(_WIN32)
|
||||
return utils::time::windows_time_to_unix_time(
|
||||
static_cast<std::uint64_t>(st.st_mtime));
|
||||
return utils::time::windows_time_t_to_unix_time(st.st_mtime);
|
||||
#else // !defined(_WIN32)
|
||||
return static_cast<std::uint64_t>(st.st_mtim.tv_nsec +
|
||||
st.st_mtim.tv_sec *
|
||||
@ -105,8 +102,7 @@ auto i_fs_item::get_time(time_types type) const -> std::uint64_t {
|
||||
|
||||
case time_types::write:
|
||||
#if defined(_WIN32)
|
||||
return utils::time::windows_time_to_unix_time(
|
||||
static_cast<std::uint64_t>(st.st_mtime));
|
||||
return utils::time::windows_time_t_to_unix_time(st.st_mtime);
|
||||
#else // !defined(_WIN32)
|
||||
return static_cast<std::uint64_t>(st.st_mtim.tv_nsec +
|
||||
st.st_mtim.tv_sec *
|
||||
|
@ -63,6 +63,13 @@ auto unix_time_to_filetime(std::uint64_t unix_time) -> FILETIME {
|
||||
file_time.dwLowDateTime = win_time & 0xFFFFFFFF;
|
||||
return file_time;
|
||||
}
|
||||
|
||||
auto windows_time_t_to_unix_time(__time32_t win_time) -> std::uint64_t {
|
||||
return static_cast<std::uint64_t>(
|
||||
std::chrono::duration_cast<std::chrono::nanoseconds>(
|
||||
std::chrono::system_clock::from_time_t(win_time).time_since_epoch())
|
||||
.count());
|
||||
}
|
||||
#endif // defined(_WIN32)
|
||||
|
||||
auto unix_time_to_windows_time(std::uint64_t unix_time) -> std::uint64_t {
|
||||
|
Reference in New Issue
Block a user