如何正确地将unix时间戳转换为datetime?

时间:2018-03-25 14:14:24

标签: c# datetime timestamp

我在Unix Timestamp转换DateTime时遇到一些问题。

这是Timestamp1521932400

我想在DateTime转换它,所以我写了这段代码:

 public static DateTime UnixTimeStampToDateTime(long unixTimeStamp)
 {
    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    dtDateTime = dtDateTime.AddSeconds(unixTimeStamp);
    return dtDateTime;
 }

基本上我宣布一个DateTime,然后将Timestamp的值添加到其中,所以在这种情况下我会得到:24/03/2018 23:00:00但是我应该得到:{{1} }。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

好的问题解决了。我需要转换我的时区中转换返回的DateTime,所以我使用:

public static DateTime UnixTimeStampToDateTime(long unixTimeStamp)
{
    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    dtDateTime = dtDateTime.AddSeconds(unixTimeStamp);

    //Convert in my timezone
    TimeZoneInfo timeInfo = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
    DateTime userTime = TimeZoneInfo.ConvertTimeFromUtc(dtDateTime, timeInfo);

    return userTime;
}