将ticks转换为time_t或Filetime()

时间:2009-10-23 14:29:35

标签: c# asp.net .net datetime

如何将ticks转换为time_t或filetime()?

2 个答案:

答案 0 :(得分:4)

time_tdefined,是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;