2012-10-10 21 views

Odpowiedz

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

Ty uratowałeś moje zdrowie psychiczne. –

+12

Dlaczego "podwójne"? Czy długa liczba całkowita nie byłaby lepszym modelem na sekundy? (I bardziej spójne z reprezentacją Uniksa?) –

+0

@ WilliamT.Mallard Jeśli chcesz 'long', proponuję' return span.Ticks/TimeSpan.TicksPerSecond; '. Jednak od 2015 roku BCL ma wbudowaną metodę '((DateTimeOffset) value) .ToUnixTimeSeconds()'. –

-1

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

+2

A) Brakuje ci paren, zakładam, że powinno to iść przed 'DateTime.UtcNow', tak? I czy nie powinno być "nowym DateTime (2012,10,10,14,0,0)" epoką Unix 1/1/1970? –

Powiązane problemy