Преобразование C ++ time_t в Delphi TDateTime - PullRequest
3 голосов
/ 16 февраля 2011

В приложении Delphi XE я читаю значения из базы данных, изначально созданной программой на C ++. Существует столбец даты, который хранится (он будет отображаться) как time_t, то есть время Unix, количество секунд с 00:00, 1 января 1970 г. UTC. Я могу иметь дело с часовым поясом, но как я могу получить TDateTime из (long) time_t?

Ответы [ 2 ]

11 голосов
/ 16 февраля 2011

Попробуйте использовать функцию unixtodatetime, которая является частью блока Dateutils: http://docwiki.embarcadero.com/VCL/en/DateUtils.UnixToDateTime

3 голосов
/ 16 февраля 2011

Если вы хотите сделать это самостоятельно по какой-то причине, очевидным подходом было бы разделить time_t на количество секунд в дне, а затем добавить это в TDateTime на 00:00, 1 января 1970 года.

(Но ответ RRUZ должен сработать и означает, что вам не нужно изобретать велосипед).

...