2012-10-10 20 views

Trả lời

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

Bạn đã cứu độ tỉnh táo của tôi. –

+12

Tại sao "tăng gấp đôi"? Chẳng phải một số nguyên dài sẽ là mô hình tốt hơn trong vài giây sao? (Và phù hợp hơn với các đại diện Unix?) –

+0

@ WilliamT.Mallard Nếu bạn muốn một 'long', tôi đề nghị' trở lại span.Ticks/TimeSpan.TicksPerSecond; '. Tuy nhiên, kể từ năm 2015, BCL có một phương thức tích hợp sẵn, '((Giá trị DateTimeOffset)) .ToUnixTimeSeconds()'. –

-1

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

+2

A) Bạn đang thiếu một paren, tôi giả sử nó nên đi trước 'DateTime.UtcNow', vâng? Và không nên 'DateTime mới (2012,10,10,14,0,0) 'là kỷ nguyên Unix 1/1/1970? –

Các vấn đề liên quan