我在将Delphi应用程序移植到C#时遇到了一个问题。Delphi应用程序将时间记录到日志文件中,然后将其读回程序中。但它记录的时间格式让我感到困惑。我找不到.Net库来正确转换它。
Delphi在日志文件中记录的时间:976129709(在Delphi代码中转换为1/14/20095:53:26 PM)
//Here is the Delphi code which records it:
IntToStr(DirInfo.Time);
//Here is the Delphi code which reads it back in:
DateTimeToStr(FileDateToDateTime(StrToInt(stringTime));
有人知道我如何在.Net上阅读这篇文章吗?
4条答案
按热度按时间0wi1tuuw1#
Delphi的TSearchRec.Time格式是旧的DOS 32位日期/时间值。据我所知,没有内置的转换器,所以你得写一个。例如:
fsi0uk1n2#
Here is description of different date/time formats(Delphi的原生TDateTime是OLE自动化日期格式)。据此,您需要System.DateTime.FromFileTime()和System.DateTime.ToFileTime()+DosDateTimeToFileTime()和FileTimeToDosDateTime()函数。实际上,这是分两步进行的转换。
kd3sttzy3#
我尝试了谷歌搜索和实验,从伪代码开始查找类似于Unix时代的内容。
你能确认你的输入是正确的吗?
看在《会飞的意大利面怪物》的份上,放弃你的12小时时间格式吧!;)
oknwwptz4#
我玩这个游戏已经晚了,但我已经用了好几年了,而且效果很好。它将Delphi时间转换为Windows记号,然后将其转换为日期时间。