Delphi XE2提示我文件日期/时间已更改,但它没有';T我应该担心吗?

Delphi XE2提示我文件日期/时间已更改,但它没有';T我应该担心吗?,delphi,datetime,ide,delphi-xe2,Delphi,Datetime,Ide,Delphi Xe2,我让我的DelphiIDE在我的工作计算机上打开了一个项目。刚才,我通过Windows远程桌面连接到我的工作计算机,并被提示 Module [file path.pas]'s time/date changed. Reload? 项目中打开的每个文件都会显示相同的消息 我应该为此担心吗?真的有什么变化吗?我检查了来源,没有什么不同。恰巧夏令时刚刚结束,所有观测到夏令时的地区都已经倒退了一个小时。DelphiIDE不知道这一点,因此所有打开文件的日期/时间将与实际情况相差一小时 我预计很多人今天

我让我的DelphiIDE在我的工作计算机上打开了一个项目。刚才,我通过Windows远程桌面连接到我的工作计算机,并被提示

Module [file path.pas]'s time/date changed. Reload?
项目中打开的每个文件都会显示相同的消息


我应该为此担心吗?真的有什么变化吗?我检查了来源,没有什么不同。

恰巧夏令时刚刚结束,所有观测到夏令时的地区都已经倒退了一个小时。DelphiIDE不知道这一点,因此所有打开文件的日期/时间将与实际情况相差一小时


我预计很多人今天或明天都会看到这一点,或者当他们回到他们的IDE时,IDE在时间变化期间保持打开状态。

我不同意给出
-1
的人,因此
+1
在5年前报告了它:。更糟糕的是,IDE无法通过DST更改。@Sertac,好吧,但如何解决这个问题。
WM_TIMECHANGE
消息是在系统恢复后广播的(据我记忆所及),但我认为您首先检测到文件更改,而不是接收
WM_TIMECHANGE
@TLama-可能。事实上我从没想过。报告的错误是IDE无法处理有关项目组文件的更改。您必须关闭IDE才能摆脱这个问题。@SertacAkyuz在您的QC报告中,您说您必须手动关闭IDE,它不会分别关闭。我没有面对这个问题。是的,这是IDE中已知的问题。有趣的是,它只显示当前在编辑器中打开的文件的消息,而不显示作为项目一部分但当前未在编辑器选项卡/窗口中打开的文件的消息。@Flash:这为什么是“IDE错误”?IDE打开了文件,系统时间也改变了。现在,打开文件的日期/时间与磁盘上的不匹配。IDE询问是否应该重新加载它们,因为它不知道日期/时间为什么改变(操作系统改变了);就IDE所知,您可以在外部程序或IDE的其他副本中编辑该文件。这样做实际上很好,因此您可以确保您正在处理源代码的当前副本。这里没有bug。我不明白当它完全按照设计的方式工作时,它怎么会被称为bug。它告诉您内存中文件的时间戳与磁盘上的时间戳不匹配(这是事实,因为文件日期/时间戳基于本地时间,而本地时间已更改了一小时)。如果你的软件完全按照你编写它时所希望的方式工作,那么它就不是一个bug。WM_TIMECHANGE只是说时间变了,而不是为什么变了,或者变了多少。它没有多大用处,因为IDE无法确定时间变化是否只是由于DST。更好的解决方法是在内部为所有文件时间戳使用UTC。然而,我同意Ken的观点,这是一个边缘问题,IDE代码无法膨胀,IDE不应该处理DST。它所要做的就是保留
GetFileTime
返回的内容供参考-无需本地转换。