如何在 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
在此之后
@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