在我的VB.NET项目中,使用JSON.NET,我从Web API获取JSON,该值具有代表yyyy-MM-ddTHH:mm:ss
格式中日期的值,喜欢简单地获得这个价值。JSON.NET:获取特定的JSON日期值
这或多或少是什么JSON的样子:
{
"REQ_DATE": "2016-01-17T12:27:57",
"REQ_TYPE": "Vacation",
"HOURS": 500.0,
"LEAVE_TIME": "8:00 AM",
"LEAVE_DATE": "2016-01-23T00:00:00",
"DUE_TIME": "8:00 AM",
"DUE_DATE": "2016-01-24T00:00:00",
}
所以我应该序列化和做什么,我将与价值,对不对?但是,当我将该键值置于变量中时,日期格式会自动更改!
Dim temp As String = myJsonResult("REQ_DATE")
' temp = "1/17/2016 12:27:57 PM"
我需要这个日期,因为它是从检索的JSON。我看到了两种解决此问题的方法:手动将其转换为yyyy-MM-ddTHH:mm:ss
,或者使用regex直接获取键值对 - 这两者我都没有成功。
我试图把它转换成日期时间:
Dim tempDateTime As DateTime = DateTime.ParseExact(myJsonResult("REQ_DATE").ToString,"yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture)
' Error: String is not Recognized as valid DateTime
Dim myDesiredResult As String = tempDateTime.ToString("yyyy-MM-ddTHH:mm:ss")
我尝试使用正则表达式:
Dim regex As Regex = New Regex("""REQ_DATE"": ""([\d\w]*)""")
Dim match As Match = regex.Match(myJsonAsString)
If match.Success Then
Dim myDesiredResult As String = match.Groups(1).Value
End If
' match is empty...
任何及所有帮助是极大的赞赏。
有趣。我已经设法使这个工作与我的答案一致,但是这解释了自动转换 - 而且解决方案更加优雅。 – chakeda