Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert a C++ time_t to Delphi TDateTime

Tags:

c++

delphi

time-t

In a Delphi XE application, I am reading values from a database originally created by a C++ program. There is a date column, stored (it would appear) as time_t, i.e. Unix time, the number of seconds since 00:00, Jan 1, 1970 UTC. I can deal with the time zone, but how can I get TDateTime from (long) time_t?

like image 731
Marek Jedliński Avatar asked Dec 07 '22 23:12

Marek Jedliński


2 Answers

Try using the unixtodatetime function which is part of the Dateutils unit : http://docwiki.embarcadero.com/VCL/en/DateUtils.UnixToDateTime

like image 198
RRUZ Avatar answered Dec 15 '22 01:12

RRUZ


If you want to do it yourself for some reason, the obvious approach would be to divide the time_t by the number of seconds in a day, then add that to a TDateTime for 00:00, Jan 1, 1970.

(But RRUZ answer should work and means you don't have to reinvent the wheel).

like image 37
Thorsten Engler Avatar answered Dec 14 '22 23:12

Thorsten Engler