How can I convert a Unix timestamp to DateTime and vice versa?

前端 未结 19 2411
抹茶落季
抹茶落季 2020-11-21 06:37

There is this example code, but then it starts talking about millisecond / nanosecond problems.

The same question is on MSDN, Seconds since the Unix epoch in C#<

19条回答
  •  -上瘾入骨i
    2020-11-21 06:40

    Here's what you need:

    public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
    {
        // Unix timestamp is seconds past epoch
        System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
        dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
        return dtDateTime;
    }
    

    Or, for Java (which is different because the timestamp is in milliseconds, not seconds):

    public static DateTime JavaTimeStampToDateTime( double javaTimeStamp )
    {
        // Java timestamp is milliseconds past epoch
        System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
        dtDateTime = dtDateTime.AddMilliseconds( javaTimeStamp ).ToLocalTime();
        return dtDateTime;
    }
    

提交回复
热议问题