Dans une application Delphi XE, je suis en train de lire les valeurs d'une base de données créée à l'origine par un programme C++. Il y a une colonne de date, stockée (il semblerait) comme time_t, c'est-à-dire, un temps Unix, le nombre de secondes écoulées depuis 00:00, le 1er janvier 1970 UTC. Je peux gérer le fuseau horaire, mais comment puis-je obtenir TDateTime à partir de (long) time_t?Conversion d'un time_t C++ en Delphi TDateTime
3
A
Répondre
11
Essayez d'utiliser la fonction unixtodatetime qui fait partie de l'unité DateUtils: http://docwiki.embarcadero.com/VCL/en/DateUtils.UnixToDateTime
3
Si vous voulez faire vous-même pour une raison quelconque, l'approche évidente serait de diviser le time_t par le nombre de secondes dans une journée , puis ajoutez cela à un TDateTime pour 00:00, le 1er janvier 1970.
(Mais la réponse RRUZ devrait fonctionner et signifie que vous n'avez pas besoin de réinventer la roue).
Questions connexes
- 1. Conversion de localtime en time_t (C++)
- 2. conversion invalide de time_t à const time_t *
- 3. Conversion d'un time_t en objet NSDate?
- 4. Delphi: Comment déterminer et vide TDateTime
- 5. format de conversion time_t question
- 6. Conversion de Delphi TPoint en C# Point
- 7. Conversion de C en Delphi - Guidage
- 8. utilisant C# System.DateTime comme C++ time_t
- 9. Conversion C "POUR" boucle à Delphi
- 10. C struct to Delphi enregistrement (conversion)
- 11. Conversion d'instructions complexes C Typedef en enregistrements Delphi
- 12. Conversion du code du cercle HSV de Delphi en C#
- 13. Convertir la chaîne en C++ en time_t question
- 14. Comment convertir une chaîne ISO 8601 en time_t en C++?
- 15. Comment modifier un horodatage time_t dans C?
- 16. En Delphi: Comment arrondir un TDateTime à la seconde, minute, cinq minutes etc. la plus proche?
- 17. conversion certaine date (comme « aujourd'hui 10.00 h) à time_t
- 18. comment initialiser un tableau de type time_t en C?
- 19. Différence en secondes entre deux variables TDateTime
- 20. Comment convertir des millisecondes en TDateTime?
- 21. Comment convertir la valeur 32 bits time_t en 64 bits time_t
- 22. Tentative de conversion d'un type de données time_t pour avoir le format (jj/mm/aaaa) C++
- 23. Combinaison de deux variables TDateTime
- 24. Delphi et ADO: conversion datetime en chaîne
- 25. Conversion chaîne contenant localtime en UTC en C
- 26. qu'est-ce que c time_t équivalent pour C#
- 27. Convertir Delphi Real48 en C# double
- 28. Delphi 32 à la conversion
- 29. conversion de signature de la méthode Delphi à C#
- 30. Delphi (-XE): conversion vers un type d'enregistrement avec conversion implicite
Vous en auriez besoin si vous utilisez une version de Delphi qui n'inclut pas l'unité DateUtils. L'algorithme que vous décrivez est exactement ce que fait UnixToDateTime; la valeur TDateTime à laquelle vous faites référence est 25569. –
Merci de mentionner cette constante. Je n'ai pas regardé le code de UnixToDateTime et j'étais un peu trop paresseux pour comprendre la bonne valeur de TDataTime. Mais un appel rapide à EncodeDate aurait dû fournir au questionneur cette valeur :) –