在我的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