我有一个API从targetProcess获取信息并将该信息放在sql表中.
当targetProcess字段是date时,问题就出现了,因为我收到它作为json日期"/Date(1409202000000-0500 )/".
如何在c#中将此json日期转换为Datetime?
我一直在尝试在这个StackOverflow帖子中添加像asnwer这样的额外引号,但它不起作用.
我试图替换单词日期为只使用1409202000000-0500在
DateTime dotNetDate = new DateTime(1970, 1, 1);
dotNetDate = dotNetDate.AddMilliseconds(Convert.ToInt64(1409202000000-0500)
Run Code Online (Sandbox Code Playgroud)
我下面也使用JSON.NET
string sa = "/Date(1409202000000-0500 )/"
DateTime dt = new DateTime();
dt = JsonConvert.DeserializeObject<DateTime>(sa);
Run Code Online (Sandbox Code Playgroud)
但它也不起作用,
所以问题是......我如何将这个json日期转换为c#中的Datetime?
Dav*_*d L 12
您需要手动将字符串"以编程方式"包装在引号中,以确保正确格式化:
string sa = @"""" + "/Date(1409202000000-0500 )/" + @"""";
DateTime dt = JsonConvert.DeserializeObject<DateTime>(sa);
Run Code Online (Sandbox Code Playgroud)
如果你需要多次调用它(看起来像你这样做),只需将包装责任移到一个方法:
public string WrapStringInQuotes(string input)
{
return @"""" + input + @"""";
}
Run Code Online (Sandbox Code Playgroud)
小智 5
问题出在你的日期字符串上。代替
string sa = "/Date(1409202000000-0500 )/"
Run Code Online (Sandbox Code Playgroud)
尝试
string sa = @"""/Date(1409202000000-0500)/""";
Run Code Online (Sandbox Code Playgroud)
更改您的代码:
string sa = @"""/Date(1409202000000-0500)/""";
DateTime dt = new DateTime();
dt = JsonConvert.DeserializeObject<DateTime>(sa);
// dt = "2014-08-28 3.00.00 PM"
Run Code Online (Sandbox Code Playgroud)