C# 将DateTime转换为历元时间将返回一个新日期

C# 将DateTime转换为历元时间将返回一个新日期,c#,datetime,highcharts,epoch,C#,Datetime,Highcharts,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 *

要将日期时间转换为纪元时间,我使用以下函数:

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
,则输出日期为

格林尼治时间:2018年7月15日星期日晚上11:09:42
您的时区:2018年7月16日星期一格林尼治标准时间上午9:09:42+10:00


我需要纪元时间,因为海图需要x轴上的纪元时间

您需要确保在正确的时区中比较时间。我建议将两者转换为UTC:

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

如果有帮助的话,你可以在高图中设置时区:为什么投票失败?为什么要打电话到当地时间?在几乎所有情况下,这都与您想要的相反。请尝试DateTimeOffset。现在。ToUnixTimeSeconds()@DaisyShipton,@Marco Salerno,@ewolden谢谢