TDateTime値は次の型と相互に変換することができます。
- Unix/Linux日付時刻値
- OSの日付時刻値
- Win32APIシステムの時型
- TTimeStamp値
- インターネットタイムスタンプ
- ユリウス日
- 修正ユリウス日
Unix/Linux日付時刻値
- Unix/Linux日付時刻値 → TDateTime値
-
TDateTime値 → UNIX/Linux日付時刻値
サンプルコード
#include <System.DateUtils.hpp>
__int64 unixTime = DateTimeToUnix(TDateTime(2012, 10, 16, 13, 21, 50, 0));
//=> 1350393710
TDateTime dt = UnixToDateTime(unixTime);
//=> 2012/10/16 13:21:50
- Unix/Linux日付時刻値 → TDateTime値
IdGlobalProtocols.UnixDateTimeToDelphiDateTime
-
TDateTime値 → UNIX/Linux日付時刻値
IdGlobalProtocols.DateTimeToUnix
サンプルコード
#include <IdGlobalProtocols.hpp>
LongWord unixTime = DateTimeToUnix(TDateTime(2012, 10, 16, 13, 21, 50, 0));
//=> 1350393710
TDateTime dt = UnixDateTimeToDelphiDateTime(unixTime);
//=> 2012/10/16 13:21:50
OSの日付時刻値
- OSの日付時刻値 → TDateTime値
-
OSの日付時刻値 → TDateTime値
-
TDateTime値 → OSの日付時刻値
-
TDateTime値 → OSの日付時刻値
サンプルコード(SysUtils)
int fileDate = DateTimeToFileDate(TDateTime(2012, 10, 16, 13, 21, 50, 0));
//=> 1095789241
TDateTime dt = FileDateToDateTime(fileDate);
//=> 2012/10/16 13:21:50
サンプルコード(TDateTime)
int fileDate = TDateTime(2012, 10, 16, 13, 21, 50, 0).FileDate();
//=> 1095789241
TDateTime dt = TDateTime::FileDateToDateTime(fileDate);
//=> 2012/10/16 13:21:50
Win32APIシステムの時型
- システム時刻値 → TDateTime値
-
システム時刻値 → TDateTime 値
-
TDateTime → Win32APIシステムの時型
サンプルコード
_SYSTEMTIME systime;
DateTimeToSystemTime(TDateTime(2012, 10, 16, 13, 21, 50, 0), systime);
UnicodeString s = Format("%u/%u/%u %u:%u:%u:%u",
ARRAYOFCONST((systime.wYear, systime.wMonth, systime.wDay, systime.wHour,
systime.wMinute, systime.wSecond, systime.wMilliseconds)));
//=> 2012/10/16 13:21:50:0
TDateTime dt = SystemTimeToDateTime(systime);
//=> 2012/10/16 13:21:50
TTimeStamp値
- TTimeStamp → TDateTime値
-
TDateTime → TTimeStamp値
System.SysUtils.DateTimeToTimeStamp
###インターネットタイムスタンプ -
インターネットタイムスタンプ → TDateTime値
dGlobalProtocols.StrInternetToDateTime
dGlobalProtocols.GMTToLocalDateTime
サンプルコード
#include <IdGlobalProtocols.hpp>
TDateTime dt = StrInternetToDateTime("Sat, 20 Sep 2003 11:44:35 +0900");
//=> 2003/09/20 11:44:35
TDateTime dt = GMTToLocalDateTime("Sat, 20 Sep 2003 11:44:35 +0900");
//=> 2003/09/20 11:44:35
ユリウス日
- ユリウス日 → TDateTime値
-
ユリウス日 → TDateTime値
-
TDateTime値 → ユリウス日
サンプルコード
#include <System.DateUtils.hpp>
double julian = DateTimeToJulianDate(TDateTime(2012, 10, 16, 13, 21, 50, 0));
//=> 2456217.0568287
TDateTime dt = JulianDateToDateTime(julian);
//=> 2012/10/16 13:21:50
修正ユリウス日
- 修正ユリウス → TDateTime値
-
修正ユリウス日 → TDateTime
-
TDateTime値 → 修正ユリウス日
サンプルコード
#include <System.DateUtils.hpp>
double julian = DateTimeToModifiedJulianDate(TDateTime(2012, 10, 16, 13, 21, 50, 0));
//=> 56216.5568287037
TDateTime dt = ModifiedJulianDateToDateTime(julian);
//=> 2012/10/16 13:21:50