C# 如何从时间戳转换为日期
下面的两个JSON值(创建的、udated的)是某种类型的时间戳。提供程序(EdmundsAPI)没有指定除“时间戳”之外的任何内容。我已经尝试了标准的UNIX转换到.Net Datetime,但没有任何效果 “已创建”:1380292641721,“已更新”:138031258558 以下两种方法不起作用:C# 如何从时间戳转换为日期,c#,.net,datetime,C#,.net,Datetime,下面的两个JSON值(创建的、udated的)是某种类型的时间戳。提供程序(EdmundsAPI)没有指定除“时间戳”之外的任何内容。我已经尝试了标准的UNIX转换到.Net Datetime,但没有任何效果 “已创建”:1380292641721,“已更新”:138031258558 以下两种方法不起作用: internal DateTime ConvertUnixEpochTime(long epoch) { long baseTicks = 62135596800
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();
您能否以某种方式创建这样一个时间戳,以便知道它代表的实际时间?或者最好是多个时间戳。您能否以某种方式创建这样一个时间戳,以便您知道它代表的实际时间?或者最好是多个。