Visual studio 2010 将字符串转换为日期
这是我的VB.Net项目。在这个阶段,我将数据从excel拉到VS2010 在这里,我的日期是字符串格式的25.10.2013,我想在datagrid中添加此日期,但它显示“从字符串“25.10.2013”转换为类型“date”无效”错误 请检查以下两个编码(函数和While),并为我提供解决方案以解决此问题Visual studio 2010 将字符串转换为日期,visual-studio-2010,vb6,Visual Studio 2010,Vb6,这是我的VB.Net项目。在这个阶段,我将数据从excel拉到VS2010 在这里,我的日期是字符串格式的25.10.2013,我想在datagrid中添加此日期,但它显示“从字符串“25.10.2013”转换为类型“date”无效”错误 请检查以下两个编码(函数和While),并为我提供解决方案以解决此问题 If DialogResult = Windows.Forms.DialogResult.OK Then Try Dim objreader As New System.IO.
If DialogResult = Windows.Forms.DialogResult.OK Then
Try
Dim objreader As New System.IO.StreamReader(OpenDLG.FileName)
linecount = 0
dupord = 0
nooford = 0
While Not objreader.EndOfStream
fallout = objreader.ReadLine
If linecount >= 0 Then
If fallout = "" Then
Exit While
End If
' Dim tmpArray() As String = Regex.Split(Trim(velocityfallout), " ")
Dim tmpArray() As String = Regex.Split(Trim(fallout), ",")
If tmpArray(0) = "" Then
Exit While
End If
pono = tmpArray(0)
issue = tmpArray(1)
falldate = getToday(tmpArray(3))
ftype = "Velocity"
checkfallout("Velocity", "", "", falldate, "", pono, "", issue, "")
nooford = nooford + 1
End If
linecount += 1
End While
GetToday函数:
Function getToday(ByVal dateStr As Date) As String
Dim dateStrRet As String
dateStrRet = CStr(DatePart("yyyy", dateStr)) & "-"
If DatePart("m", dateStr) < 10 Then
dateStrRet = dateStrRet & "0" & CStr(DatePart("m", dateStr)) & "-"
Else
dateStrRet = dateStrRet & CStr(DatePart("m", dateStr)) & "-"
End If
If DatePart("d", dateStr) < 10 Then
dateStrRet = dateStrRet & "0" & CStr(DatePart("d", dateStr))
Else
dateStrRet = dateStrRet & CStr(DatePart("d", dateStr))
End If
Return dateStrRet
End Function
函数getToday(ByVal dateStr作为日期)作为字符串
Dim dateStrRet作为字符串
datestret=CStr(DatePart(“yyyy”,dateStr))&“-”
如果DatePart(“m”,dateStr)<10,则
datestret=datestret&“0”和CStr(DatePart(“m”,dateStr))&“-”
其他的
datestret=datestret&CStr(DatePart(“m”,dateStr))&“-”
如果结束
如果DatePart(“d”,dateStr)<10,则
datestret=datestret&“0”和CStr(DatePart(“d”,dateStr))
其他的
datestret=datestret&CStr(DatePart(“d”,dateStr))
如果结束
返回日期
端函数
我假设方法
getToday
应该返回今天的日期字符串,您可以通过date.today.toSortDateString
或date.today.ToString(“d”)获得它
。但如果您希望它采用特定格式,例如使用英语或德语日期分隔符,则必须提供适当的IFormatProvider
。德国文化“de de”
例如使用
作为日期分隔符:
'fallback culture
Private Shared ReadOnly deCulture As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE")
Function getToday(ByVal dt As Date, Optional provider As IFormatProvider = Nothing) As String
' force culture "de-DE" (germany) if no one was provided:
If provider Is Nothing Then provider = deCulture
Return dt.ToString("d", provider)
End Function
由于不太清楚,可能从字符串中解析日期也有问题。然后必须使用具有适当区域性的date.parse
或date.ParseExact
(或TryParse
方法):
Dim dateStr As String = tmpArray(3)
Dim deCulture As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE")
Dim dt As Date
If Date.TryParse(dateStr, deCulture, DateTimeStyles.None, dt) Then
dateStr = getToday(dt, deCulture) ' you can omit deCulture since that is default here
End If