C++ 是否有API将文件时间格式的时间从UTC转换为本地时间?
我知道API可以从UTC时间转换为本地时间,但在SYSTEMTIME格式中需要时间。我很好奇是否有一个API可以接受FILETIME格式 另外,我知道我可以通过使用FileTimeToSystemTime()和SystemTimeToFileTime()来实现这一点。我只是想节省两个步骤来转换到SYSTEMTIME和返回 将(基于UTC的)文件时间转换为本地文件时间 以及: 将本地文件时间转换为基于协调世界时(UTC)的文件时间 但是,您不能在指定时区的UTCC++ 是否有API将文件时间格式的时间从UTC转换为本地时间?,c++,c,windows,winapi,C++,C,Windows,Winapi,我知道API可以从UTC时间转换为本地时间,但在SYSTEMTIME格式中需要时间。我很好奇是否有一个API可以接受FILETIME格式 另外,我知道我可以通过使用FileTimeToSystemTime()和SystemTimeToFileTime()来实现这一点。我只是想节省两个步骤来转换到SYSTEMTIME和返回 将(基于UTC的)文件时间转换为本地文件时间 以及: 将本地文件时间转换为基于协调世界时(UTC)的文件时间 但是,您不能在指定时区的UTCFILETIME和本地FILETIM
FILETIME
和本地FILETIME
之间进行转换。本地计算机的当前时区用于转换。文件规定:
要在将文件时间转换为本地时间时考虑夏令时,请使用以下函数序列代替使用FileTimeToLocalFileTime:1.FileTimeToSystemTime
2.SystemTimeToTzSpecificClocalTime
3.SystemTimeToFileTime 及 LocalFileTimeToFileTime使用时区和夏令时的当前设置。因此,如果是夏令时,此功能将考虑夏令时,即使转换的时间是标准时间
反过来呢?:很抱歉,我可能误解了什么,但如何才能转换为
本地时间而不是“夏令时帐户”?那会是什么样的时间?@MikeF:这意味着如果你在当地时间周四下午2点写一个文件,然后在周末夏令时开始,当你在周一查看文件时,会说它是在下午1点写的。系统使用当前时区,而不是您编写文件时有效的时区。@HarryJohnston:但这是错误的。应该改为下午2点。@MikeF:这比你想象的要困难得多。它可能在很久以前就被放进了太硬的篮子里,当时Windows必须足够紧凑,才能在有256KB内存(即千字节,而不是兆字节)且没有硬盘驱动器的系统上运行。当然,从那时起,向后兼容的限制使得改变成为不可能。