1

c++ を使用して、double 値である Pascal TDateTime オブジェクトから Unix エポックに変換する必要があります。

考えられる解決策が提案されています ( https://forextester.com/forum/viewtopic.php?f=8&t=1000 ):

unsigned int UnixStartDate = 25569;

unsigned int DateTimeToUnix(double ConvDate)
{
  return((unsigned int)((ConvDate - UnixStartDate) * 86400.0));
}

ただし、この変換コードは次のようなエラーを生成します。

TDateTime 時間値 = 37838.001388888886 (05.08.2003 02:00)

これは Unix エポック 1060041719 (05.08.2003 00:01:59) に変換されますが、これは明らかに正しくありません。

この TDateTime 値を正確に変換するにはどうすればよいですか?

4

2 に答える 2