【发布时间】:2012-03-01 20:05:17
【问题描述】:
我正在尝试获取与 windows 属性中显示的相同的创建、访问和修改日期,如下所示:
但我发现时间始终是 30 分钟:
相信这可能与时区/夏令时有关,但一直无法找到解决方案。试过看: 时区偏差以及调整和查看不同的方法,包括: How to get create/last modified dates of a file in Delphi?
当前代码:
var
MyFd TWin32FindData;
FName: string;
MyTime: TFileTime;
MySysTime: TSystemTime;
myDate, CreateTime, AccessTime, ModTime: TDateTime;
Begin
...
FindFirstFile(PChar(FName), MyFd);
MyTime:=MyFd.ftCreationTime;
FileTimeToSystemTime(MyTime, MySysTime);
myDate := EncodeDateTime(MySysTime.wYear, MySysTime.wMonth, MySysTime.wDay, MySysTime.wHour,
MySysTime.wMinute, MySysTime.wSecond, MySysTime.wMilliseconds);
Memo1.Lines.Add('Created: '+ FormatDateTime('dddd, d mmmm yyyy, hh:mm:ss ampm', MyDate));
...
任何帮助表示赞赏
谢谢 保罗
【问题讨论】:
-
您没有告诉我们您目前是如何获取信息的。
-
David - 添加了当前代码,但尝试了多种方法
-
好的,您错过了从 UTC 到本地时间的转换。我的回答以及 Kobik 的展示如何做到这一点。