如何在 C++ 中将 Unix 纪元时间转换为 Pascal TDateTime(double)

How to convert a Unix epoch time to a Pascal TDateTime(double) in C++

在此之后 我需要进行反向转换(Unix 时间到 TDateTime)。

@Howard Hinnant 使用他的 date.h 库做了一个非常优雅的示例,但由于编译问题,我决定不使用它。不过,他的努力值得赞赏。

有人可以根据@Remy Lebeau 开发的代码向我提供一个示例吗?

这个方向比另一个方向容易。这是一个方法:

#include <stdio.h>

double UnixToDateTime(__int64 epoch)
{
    int days = epoch / (24*3600);
    int secs = epoch % (24*3600);
    return 25569 + days + ((double)secs)/(24*3600);
}

int main()
{
    printf("%.12f", UnixToDateTime(1060041720));
}

输出:

37838.001388888886