Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从时间戳转换为日期_C#_.net_Datetime - Fatal编程技术网

C# 如何从时间戳转换为日期

C# 如何从时间戳转换为日期,c#,.net,datetime,C#,.net,Datetime,下面的两个JSON值(创建的、udated的)是某种类型的时间戳。提供程序(EdmundsAPI)没有指定除“时间戳”之外的任何内容。我已经尝试了标准的UNIX转换到.Net Datetime,但没有任何效果 “已创建”:1380292641721,“已更新”:138031258558 以下两种方法不起作用: internal DateTime ConvertUnixEpochTime(long epoch) { long baseTicks = 62135596800

下面的两个JSON值(创建的、udated的)是某种类型的时间戳。提供程序(EdmundsAPI)没有指定除“时间戳”之外的任何内容。我已经尝试了标准的UNIX转换到.Net Datetime,但没有任何效果

“已创建”:1380292641721,“已更新”:138031258558

以下两种方法不起作用:

 internal DateTime ConvertUnixEpochTime(long epoch)
    {
        long baseTicks = 621355968000000000;
        long tickResolution = 10000000;

        //long epoch = 1225815911;

        long epochTicks = (epoch * tickResolution) + baseTicks;
        return new DateTime(epochTicks, DateTimeKind.Utc);
    }

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

有什么建议吗?

您当前的代码假定该值是以秒为单位的,而从Unix时代开始,它看起来是以毫秒为单位的。所以你想要:

private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
                                                          DateTimeKind.Utc);

...

DateTime dateTime = UnixEpoch.AddMilliseconds(value);
或使用:


您当前的代码假定该值以秒为单位,而从Unix时代开始,它似乎以毫秒为单位。所以你想要:

private static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0,
                                                          DateTimeKind.Utc);

...

DateTime dateTime = UnixEpoch.AddMilliseconds(value);
或使用:


使用
addmillizes
而不是
AddSeconds

System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
dtDateTime = dtDateTime.AddMilliseconds(1380312585558).ToLocalTime();

使用
addmillizes
而不是
AddSeconds

System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
dtDateTime = dtDateTime.AddMilliseconds(1380312585558).ToLocalTime();

您能否以某种方式创建这样一个时间戳,以便知道它代表的实际时间?或者最好是多个时间戳。您能否以某种方式创建这样一个时间戳,以便您知道它代表的实际时间?或者最好是多个。