Как преобразовать тики в time_t или filetime ()?

0
user175084 23 Окт 2009 в 18:29

2 ответа

Лучший ответ

time_t - определено как количество секунд от 1 января эпохи Unix, 1970 @ 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;
}
4
Steve Guidi 23 Окт 2009 в 19:04
Это здорово ... также, пожалуйста, можете ли вы сказать мне, как преобразовать из time_t в тики, спасибо
 – 
user175084
23 Окт 2009 в 19:47
2
Чтобы выполнить обратную операцию, просто добавьте epoch.Ticks к TimeSpan.FromSeconds(time_t_value).TotalTicks.
 – 
Steve Guidi
24 Окт 2009 в 02:55

Для 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;
1
stuartd 23 Окт 2009 в 19:01