您好我收到了字符串到日期转换的错误 这是我的剧本
Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
dim oVal as New Collections
'Time stamp
oVal.Add(DateTime.ParseExact(Request.Cookies("TimeStarted").Value.ToString, "dd-MM-yyyy HH:mm:ss", Nothing), "ofield_starttime")
oVal.Add(dt.ToString("dd-MM-yyyy HH:mm:ss"), "ofield_stoptime")
Savetime(oVal)
并在公共函数saveTime下(oVal as Collection)
Dim sQuery As New SqlCommand
sQuery.CommandType = CommandType.StoredProcedure
sQuery.CommandText = "PSC_Timestamp"
With sQuery.Parameters
.AddWithValue("@PSCStart", Convert.ToDateTime(oVal("ofield_starttime")))
.AddWithValue("@PSCStop", CDate(oVal("ofield_stoptime")))
End With
sQuery.Connection = myConnection
If myConnection.State = 1 Then 'check if connection open
myConnection.Close()
End If
myConnection.Open()
sQuery.ExecuteNonQuery()
myConnection.Close()
我收到此错误
从字符串转换" 13-07-2015 13:09:38"输入'日期'无效。
非常感谢助手......提前感谢。
答案 0 :(得分:0)
问题是您没有指定错误发生的位置。如果是以下行:
DateTime.ParseExact(Request.Cookies("TimeStarted").Value.ToString, "dd-MM-yyyy HH:mm:ss", Nothing)
...然后我觉得有趣的是你将Nothing
传递给最终的IFormatProvider provider
参数。当您这样做时,它默认为当前文化。您当前的文化是否有可能弄乱数据的解析方式?
为确保行为一致,请尝试传递CultureInfo.InvariantCulture
:
DateTime.ParseExact(Request.Cookies("TimeStarted").Value.ToString, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture)
如果您的错误发生在以下几行:
.AddWithValue("@PSCStart", Convert.ToDateTime(oVal("ofield_starttime")))
.AddWithValue("@PSCStop", CDate(oVal("ofield_stoptime")))
然后,请务必将日期转换逻辑更改为使用DateTime.ParseExact
,您应该没问题。
答案 1 :(得分:0)
我发现 - 为了纠正这种情况,我必须将日历格式设置为所需的设置,其格式与我在应用程序中使用的格式相同。这解决了日期转换中的错误问题。