如何将ticks转换为time_t或filetime()?
答案 0 :(得分:4)
time_t
是defined,是Unix纪元日期1970年1月1日@ 00:00 UTC的秒数。所以,你基本上需要弄清楚你的刻度代表多少时间并减去纪元时间。以下应该这样做。
double GetTimeTSecondsFrom(long ticks)
{
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return (new DateTime(ticks) - epoch).TotalSeconds;
}
答案 1 :(得分:1)
对于time_t:
long ticks = 633918528000000000;
DateTime target = new DateTime(ticks);
DateTime start = new DateTime(1970, 1, 1, 0, 0, 0);
double time_t = (target - start).TotalSeconds;