2010-12-12 21 views

Répondre

29

Vous recherchez

function DateTimeToUnix(const AValue: TDateTime): Int64; 

et

function UnixToDateTime(const AValue: Int64): TDateTime; 

fonctions de DateUtils.pas

valeur TDateTime peut être formaté par FormatDateTime fonction

15

Cela est beaucoup plus rapide

// 4x faster than dateutils version 
function UNIXTimeToDateTimeFAST(UnixTime: LongWord): TDateTime; 
begin 
Result := (UnixTime/86400) + 25569; 
end; 

// 10x faster than dateutils version 
function DateTimeToUNIXTimeFAST(DelphiTime : TDateTime): LongWord; 
begin 
Result := Round((DelphiTime - 25569) * 86400); 
end; 
+0

+1 merci. Je ne le fais pas trop souvent, mais cela est utile de savoir – Mawg

+1

Notez que DateTimeToUNIXTimeFAST a une légère différence par rapport à la version DateUtils, si millisecondes = 500..999, DateUtils arrondira en arrière, tandis que la version FAST sera arrondie vers le suivant seconde. – hikari

+0

Résultat: = Trunc ((DelphiTime - 25569) * 86400); – wittrup