Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有API将文件时间格式的时间从UTC转换为本地时间?_C++_C_Windows_Winapi - Fatal编程技术网

C++ 是否有API将文件时间格式的时间从UTC转换为本地时间?

C++ 是否有API将文件时间格式的时间从UTC转换为本地时间?,c++,c,windows,winapi,C++,C,Windows,Winapi,我知道API可以从UTC时间转换为本地时间,但在SYSTEMTIME格式中需要时间。我很好奇是否有一个API可以接受FILETIME格式 另外,我知道我可以通过使用FileTimeToSystemTime()和SystemTimeToFileTime()来实现这一点。我只是想节省两个步骤来转换到SYSTEMTIME和返回 将(基于UTC的)文件时间转换为本地文件时间 以及: 将本地文件时间转换为基于协调世界时(UTC)的文件时间 但是,您不能在指定时区的UTCFILETIME和本地FILETIM

我知道API可以从UTC时间转换为本地时间,但在SYSTEMTIME格式中需要时间。我很好奇是否有一个API可以接受FILETIME格式

另外,我知道我可以通过使用FileTimeToSystemTime()和SystemTimeToFileTime()来实现这一点。我只是想节省两个步骤来转换到SYSTEMTIME和返回

将(基于UTC的)文件时间转换为本地文件时间

以及:

将本地文件时间转换为基于协调世界时(UTC)的文件时间

但是,您不能在指定时区的UTC
FILETIME
和本地
FILETIME
之间进行转换。本地计算机的当前时区用于转换。文件规定:

要在将文件时间转换为本地时间时考虑夏令时,请使用以下函数序列代替使用FileTimeToLocalFileTime:
1.FileTimeToSystemTime
2.SystemTimeToTzSpecificClocalTime
3.SystemTimeToFileTime

LocalFileTimeToFileTime使用时区和夏令时的当前设置。因此,如果是夏令时,此功能将考虑夏令时,即使转换的时间是标准时间


反过来呢?:很抱歉,我可能误解了什么,但如何才能转换为
本地时间而不是“夏令时帐户”?那会是什么样的时间?@MikeF:这意味着如果你在当地时间周四下午2点写一个文件,然后在周末夏令时开始,当你在周一查看文件时,会说它是在下午1点写的。系统使用当前时区,而不是您编写文件时有效的时区。@HarryJohnston:但这是错误的。应该改为下午2点。@MikeF:这比你想象的要困难得多。它可能在很久以前就被放进了太硬的篮子里,当时Windows必须足够紧凑,才能在有256KB内存(即千字节,而不是兆字节)且没有硬盘驱动器的系统上运行。当然,从那时起,向后兼容的限制使得改变成为不可能。