将DateTime转换为EPOCH时间将返回新的Date

时间:2018-07-17 07:16:02

标签: c# datetime highcharts epoch

要将日期时间转换为EPOCH时间,我正在使用以下功能:

public static long EpochTime(DateTime dt)
        {
            //long form code to be clear
            TimeSpan t = dt.ToLocalTime() - new DateTime(1970, 1, 1);
            long millisecondsSinceEpoch = (long)t.TotalSeconds * 1000;
            return millisecondsSinceEpoch;
        }

现在,如果我测试输入日期为15/07/2018 1:09:42 PM的功能,则输出日期变为

  

GMT:2018年7月15日,星期日,11:09:42 PM
  您的时区:2018年7月16日,星期一,格林尼治标准时间+1:09:42

我需要纪元时间,因为Highchart在x轴上需要纪元时间。

1 个答案:

答案 0 :(得分:1)

您需要确保您比较的是正确时区的时间。我建议将它们都转换为UTC:

TimeSpan t = dt.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);