我有问题转换" 2014年5月29日星期四12:00:00 GMT-0700"到DateTime
错误: 我从JS中的隐藏字段发送值并返回到后面的代码但是它仍然与错误一起崩溃"字符串未被识别为有效的DateTime"。
Dim FromDate As String = hfDateFromByLocation.Value
Dim ToDate As String = hfDateToByLocation.Value
Dim retValFromDate As DateTime = DateTime.ParseExact(FromDate, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture)
Dim retValToDate As DateTime = DateTime.ParseExact(ToDate, "ddd MMM dd HH:mm:ss KKKK yyyy", CultureInfo.InvariantCulture)
答案 0 :(得分:2)
如果要解决这个问题,我可以使用此格式字符串并使用DateTimeOffset.ParseExact
而不是Datetime
“ddd MMM dd yyyy H:mm:ss'GMT'KKKKK”
这是它不喜欢的gmt位。所以我把它包在引号中,你需要一个额外的K作为减号..
更多调查,你可以使用DateTime.ParseExact,但你失去了时区偏移。日期时间是正确的,因为它考虑了偏移量,但你不知道它的偏差是多少。
“ddd MMM dd yyyy H:mm:ss'GMT'zzz”也对我有用。
答案 1 :(得分:1)
它不喜欢" GMT"在字符串里面:
此代码基于Tony Hopkinson的回答:
Imports System.Globalization
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim FromDate As String = "Thu May 29 2014 12:00:00 GMT-0700"
Dim retValFromDate As Date = DateTime.ParseExact(FromDate, "ddd MMM dd yyyy HH:mm:ss 'GMT'KKKK", System.Globalization.CultureInfo.InvariantCulture)
MsgBox(retValFromDate.ToString)
End Sub
End Class