Windows Mobile File Time - PullRequest
       9

Windows Mobile File Time

0 голосов
/ 13 января 2009

В Windows Mobile я использую FindFirstFile / FindNextFile для поиска некоторых файлов. Как часть результатов я получаю структуру WIN32_FIND_DATA, которая содержит один результат поиска. Эта структура содержит 3 структуры FILETIME для создания файла, последней записи и последнего времени доступа.

Затем я преобразовываю эти структуры в SYSTEMTIME, используя функцию FileTimeToSystemTime. Моя проблема начинается здесь. В структуре SYSTEMTIME поле часа не соответствует полю реального времени из времени. Я полагаю, что WM производит корректировку на основе часового пояса и летнего времени.

Например, если время создано в 5:44:30, а я в GMT +1, структура SYSTEMTIME сообщает 4: 44: 30.

Я хотел бы знать, есть ли у кого-нибудь идеи, как получить значения в реальном времени до этой корректировки?

Ответы [ 2 ]

1 голос
/ 13 января 2009

Мне непонятно, что вы думаете, в чем проблема. FindFirst / Next возвращает информацию о файле, так что время правильное - это то, что хранится в файле. Вы говорите, что ожидаете, что это будет время UTC / zulu (которое не является структурой SYSTEMTIME), а не в формате смещения, как местное время? Или наоборот? Несмотря на это, файловая система явно не согласна с этим предположением и хранит время, противоположное тому, что, по вашему мнению, должно быть. Если вы хотите настроить время, связанное с файлом, вам придется выполнить ручной расчет с информацией, возвращаемой из GetTimezoneInformation или с вызовом FileTimeToLocalFileTime. Возможно, вы захотите просмотреть все функции времени CE .

1 голос
/ 13 января 2009

FileTime, который вы получаете, находится в UTC, используйте FileTimeToLocalFileTime , прежде чем преобразовать его в SYSTEMTIME.

РЕДАКТИРОВАТЬ: Исправлена ​​ссылка.

...