如何在Delphi中获取编译日期和时间

如何在Delphi中获取编译日期和时间,delphi,compilation,Delphi,Compilation,我希望能够在Delphi2009程序中显示程序编译的日期和时间 有一种简单的方法可以做到这一点吗?一个明显的选择是使用exe的上次修改日期,但这是可以更改的 您可以在版本信息中包含编译时间戳并读取该资源。我似乎记得有一个IDE插件为您实现了这一点,但不是哪一个 或者您可以阅读。我也使用PE头时间戳。它的问题是(至少在旧版本中)Delphi没有正确地更新它。我不确定这是否已在Delphi 2010中修复。我已经编写了一个IDE插件,在每次编译后自动更新PE头。您可以从CodeCentral:.获得

我希望能够在Delphi2009程序中显示程序编译的日期和时间


有一种简单的方法可以做到这一点吗?

一个明显的选择是使用exe的上次修改日期,但这是可以更改的

您可以在版本信息中包含编译时间戳并读取该资源。我似乎记得有一个IDE插件为您实现了这一点,但不是哪一个


或者您可以阅读。

我也使用PE头时间戳。它的问题是(至少在旧版本中)Delphi没有正确地更新它。我不确定这是否已在Delphi 2010中修复。我已经编写了一个IDE插件,在每次编译后自动更新PE头。您可以从CodeCentral:.

获得它,至少从Delphi 2007开始,PE头中的链接器时间戳应该被写入。(在像Delphi 5这样的旧版本中,PE头中的时间戳是1992年的,真正的时间戳只能在参考资料中找到)

如果您已经在使用JCL,请尝试JclPEImage.pas中的PeReadLinkerTimeStamp

我使用了一个简单的IDE插件,我编写了该插件来遍历项目中的所有源文件,并编写一个包含最新修改时间的.INC文件。这是作为“编译前”操作自动完成的。我发现它比简单的“上次编译”日期更有用,因为它更准确地反映了项目最后一次更改的时间。由于我们应用程序中的所有项目都是在FinalBuilder中为每个构建进行编译的,“最后一次编译”时间将导致一系列类似的时间戳,这表示没有太多的兴趣。唯一的缺点是,该机制不会记录对我们的实用性函数库的更改,这些函数库不是任何项目的一部分;但它们并不经常改变。如果你真的只需要编译日期,一个类似的IDE插件可以代替它。

IMAGE\u FILE\u HEADER.DateTimeStamp=0x2A425E19
(6/19/1992 10:22:17 PM)我不知道为什么,这就是它。重复:@Kromster-我在2009年问过这个问题。另一个问题是在2011年提出的。因此,另一个问题与我的问题完全相同,我也这样认为,但另一个问题的答案要好得多。因此,我已经发布了评论,让这个问题的观众直接看到这些答案。我没有投一票。