Salut,
un petit souci de date,
je recupère un format date en string de format timestamp
exemple : 1119930901
comment je fais pour passer en année mois jours ?
merci d'avance :)
Version imprimable
Salut,
un petit souci de date,
je recupère un format date en string de format timestamp
exemple : 1119930901
comment je fais pour passer en année mois jours ?
merci d'avance :)
Tu as essayé un cast brutal ?Code:
1
2
3
4 var Tampon : TDateTime; begin Tampon := TDateTime(StrToFloat(maChaine)); end;
je connais pas ca, c'est apparemment brutal :)
il me dit transtypage incorrect
TDateTime(StrToFloat(maChaine));
pige pas pourquoi tdatetime ?
il y a plusieurs formats de codage : Unix, Windows ...
il doit y avoir des fonctions style UnixToDateTime pour convertir un timestamp en TdateTime qui est le format privilégié de Delphi, puis es fonctions DateTimeToString...
il y'a bien une fonction :
UnixToDateTime
mais comment je passe du string qui est ma valeur de départ à timestamp ?
date:= strtodatetime(ajout_date);
date_convert := UnixToDateTime(date);
erreur : Types incompatibles : 'Int64' et 'TDateTime'
j'ai trouvé ca :
le problème c'est que j'ai une erreur d'exeption 1119930901 n'est pas uen valeur correct :?:Code:
1
2
3
4
5
6
7
8
9 function UnixToDateTime(USec: Longint): TDateTime; begin //Example: UnixToDateTime(1003187418); Result := (Usec / 86400) + UnixStartDate; end; date:= strtoint(ajout_date); date_convert:=UnixToDateTime(ajout_date);
Citation:
Envoyé par reg11
est ce quelqu'un a essaye cette fonction ?
je la vois partout mais chez moi ca fonctionne pas :(
Bonjour
Le plus simple ne serait'il pas EncodeDate
Code:
1
2
3
4
5
6 An := '2005'; Mois := '1'; Jour := '5'; Date := EncodeDate(An, mois, jour);
Dans mon cas, j'ai un format Unix date, donc je pense pas que EncodeDate fasse l'affaire.
C'est normal que ceci ne marche pasTu passes à la fonction un TDateTime alors qu'il attend un LongInt.Code:
1
2 date:= strtodatetime(ajout_date); date_convert := UnixToDateTime(date);
Essaye çaCode:date_convert := UnixToDateTime(StrToInt64(ajout_date));
non ca fonctionne pas
si il attend un Longint, et que je convertit en Int64, y'a problème non ?
erreur d'exeption 1119930901 n'est pas une valeur correct,
Je viens de faire un test, ce code fonctionne bienCode:
1
2
3
4
5
6 procedure TForm1.Button1Click(Sender: TObject); var toto : TDateTime; begin toto := UnixToDateTime(StrToInt64('1119930901')); ShowMessage(DateTimeToStr(toto)); end;
:oops:
j'avais un espace quand je recuperais ma date ...
merci MD, j'essaierai la prochaine fois d'etre plus attentif ;)Code:
1
2 date_convert := UnixToDateTime(StrToInt64(trim(ajout_date)));