请问在delphi里如何把以1970后毫秒转化后的数字转化回来?(50分)

  • 主题发起人 主题发起人 himoo
  • 开始时间 开始时间
H

himoo

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在delphi里如何把以1970后毫秒转化后的数字转化回来?<br>比如1138238635 &nbsp;应该是 2006 1 26 23:xx<br>怎么做呢?谢谢
 
只有自己算了,可能API里面有,不过没用过,谁知道?
 
function EncodeTimeByTickCount(TickCount: DWORD;<br> &nbsp;var Hour, Min, Sec: Word): TDateTime;<br><br>var<br> // tH, tC, tS: DWord;<br> &nbsp;RH, RC, RS: DWord;<br> &nbsp;tempN: DWord;<br>begin<br>{ &nbsp;tS := 1000;<br> &nbsp;tC := 60 * tS;<br> &nbsp;tH := 60 * tC; }<br><br> &nbsp;TempN := TickCount;<br> &nbsp;RH := TempN div tH;<br><br> &nbsp;TempN := TempN mod tH;<br> &nbsp;RC := TempN div tM;<br><br> &nbsp;TempN := TempN mod tM;<br> &nbsp;Rs := TempN div tS;<br><br> &nbsp;Hour := Rh;<br> &nbsp;Min := Rc;<br> &nbsp;Sec := Rs;<br><br> &nbsp;Result := EncodeTime(Rh, Rc, Rs, 0);<br>end;<br>这是转换成time的,我自己程序里面用的,不过你要转换到日期,那你拿去改改把,其实很简单,就是除法运算而已。
 
FormatDateTime('YYYY MM DD HH:SS:ZZZZ', time)
 
我猜你的题目应该有误,不是毫秒,而是秒!<br><br>如果我没猜错,请看:<br>var<br> &nbsp;dt: TDateTime;<br>begin<br> &nbsp;dt := StrToDateTime('1970-1-1') + 1138238635 / (3600 * 24);<br> &nbsp;ShowMessage(FormatDateTime('YYYY-MM-dd hh:mm:ss', dt));<br>end;<br>其结果应该是:2006-01-26 01:23:55<br><br>因为所谓 TDateTime,其实质就是一个 Double,<br>其整数部分表明从 12/30/1899 12:00 am 这一时刻起的天数,小数表示不足一天的部分。
 
多人接受答案了。
 
谢谢各位
 
后退
顶部