在 .Net 2.0 中将“\/Date(1427565325073+0100)\/”解析为 DateTime
Parse "\/Date(1427565325073+0100)\/" to DateTime in .Net 2.0
有很多关于如何使用 .net4+ 在 C# 中解析 "json date" 的示例,但我还没有找到很多可以在 .Net 2.0 上运行的示例。
喜欢这个 Parsing JSON DateTime from Newtonsoft's JSON Serializer 如果你有 .net4 并且可以使用库,它会很好用..
然而,我只有 base .Net 2 可供使用。
那么,最好的解析方法是什么:
"/Date(1427565325073+0100)/"
C# System.DateTime
.
我的代码当前代码不适用于时区。
private System.DateTime ParseJsonDate(string jsondate)
{
jsondate = jsondate.Replace("/Date(", "");
jsondate = jsondate.Replace(")/", string.Empty);
var expDate = new System.DateTime(long.Parse(jsondate));
return expDate;
}
首先,你可以尝试寻找JSON.NET的早期版本,我相信有一些支持.NET 2.0。
如果你找不到任何东西,你可以通过 JSON.NET source code on github 找到代码,它完成了工作并被时间和人们证明了。
或者你可以根据我的小样本编写自己的实现:
var input = "/Date(1427565325073+0100)/";
var dateVal = input.Substring(6, input.Length - 8);
Console.WriteLine(dateVal);
var parts = dateVal.Split('+');
var milliseconds = long.Parse(parts[0]);
var utcTime = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
Console.WriteLine(utcTime);
var localTime = utcTime;
if (parts.Length > 1)
{
var hoursMinutes = int.Parse(parts[1]);
localTime = localTime.AddHours(hoursMinutes / 100).AddMinutes(hoursMinutes % 100);
}
Console.WriteLine(localTime);
有很多关于如何使用 .net4+ 在 C# 中解析 "json date" 的示例,但我还没有找到很多可以在 .Net 2.0 上运行的示例。
喜欢这个 Parsing JSON DateTime from Newtonsoft's JSON Serializer 如果你有 .net4 并且可以使用库,它会很好用..
然而,我只有 base .Net 2 可供使用。
那么,最好的解析方法是什么:
"/Date(1427565325073+0100)/"
C# System.DateTime
.
我的代码当前代码不适用于时区。
private System.DateTime ParseJsonDate(string jsondate)
{
jsondate = jsondate.Replace("/Date(", "");
jsondate = jsondate.Replace(")/", string.Empty);
var expDate = new System.DateTime(long.Parse(jsondate));
return expDate;
}
首先,你可以尝试寻找JSON.NET的早期版本,我相信有一些支持.NET 2.0。
如果你找不到任何东西,你可以通过 JSON.NET source code on github 找到代码,它完成了工作并被时间和人们证明了。
或者你可以根据我的小样本编写自己的实现:
var input = "/Date(1427565325073+0100)/";
var dateVal = input.Substring(6, input.Length - 8);
Console.WriteLine(dateVal);
var parts = dateVal.Split('+');
var milliseconds = long.Parse(parts[0]);
var utcTime = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
Console.WriteLine(utcTime);
var localTime = utcTime;
if (parts.Length > 1)
{
var hoursMinutes = int.Parse(parts[1]);
localTime = localTime.AddHours(hoursMinutes / 100).AddMinutes(hoursMinutes % 100);
}
Console.WriteLine(localTime);