#include <string>
using namespace std;
//使用window api
static string GetFileModifiedTime(const wstring& path)
{
struct _stat64i32 statbuf;
_wstat64i32(path.c_str(), &statbuf);
char buf[20];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", _localtime64(&statbuf.st_mtime));
return buf;
}
#include <filesystem>
#include <string>
using namespace std;
namespace fs = std::filesystem;
//使用filesystem
// 参考: https://blog.csdn.net/haiross/article/details/45718743
// time_t: 表示从1970-01-01 00:00:00以来的秒数
// filetime: 表示从1601-01-01 00:00:00以来的100纳秒为单位的时间
// 1601到1970相差369年,即11644473600秒
// __std_fs_file_time_epoch_adjustment = 0x19DB1DED53E8000LL = 116444736000000000
static string GetFileModifiedTime(const fs::path& path)
{
auto ftime = fs::last_write_time(path).time_since_epoch().count();
ftime = (ftime - __std_fs_file_time_epoch_adjustment) / 10000000;
char buf[20];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", _localtime64(&ftime));
return buf;
}