2012-10-10 27 views

回答

36
private double ConvertToTimestamp(DateTime value) 
{ 
    //create Timespan by subtracting the value provided from 
    //the Unix Epoch 
    TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime()); 

    //return the total seconds (which is a UNIX timestamp) 
    return (double)span.TotalSeconds; 
} 
+0

你先生已經救了我的理智。 –

+12

爲什麼「雙」?長整數是不是一個更好的模型秒? (並且與Unix表示更一致?) –

+0

@ WilliamT.Mallard如果你想要一個'long',我建議'返回span.Ticks/TimeSpan.TicksPerSecond;'。但是,自2015年以來,BCL擁有內置方法'((DateTimeOffset)值).ToUnixTimeSeconds()'。 –

-1

DateTime.UtcNow - new DateTime(2012,10,10,14,0,0)).TotalSeconds

+2

A)你錯過了一個paren,我假設它應該在'DateTime.UtcNow'之前,是嗎?不應該'新的DateTime(2012,10,10,14,0,0)'是Unix紀元1/1/1970? –