.net VB日期转换
有没有一种简单的方法可以转换包含以下内容的字符串:.net VB日期转换,.net,vb.net,string,.net-2.0,date,.net,Vb.net,String,.net 2.0,Date,有没有一种简单的方法可以转换包含以下内容的字符串: Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST) 20081105_131212 转换为包含以下内容的字符串: Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST) 20081105_131212 更新: 最后我使用了date.tryparse,它与tryParseExact类似,只是您不必指定格式字符串。我必须删除()和EST才能使其正常工作。日期字符串将始终是EST
Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)
20081105_131212
转换为包含以下内容的字符串:
Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)
20081105_131212
更新:最后我使用了date.tryparse,它与tryParseExact类似,只是您不必指定格式字符串。我必须删除()和EST才能使其正常工作。日期字符串将始终是EST,因为日期字符串来自1个web服务器 原始字符串:
Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)
Wed, 5 Nov 2008 13:12:12 -0500
使用此代码:buff1.Remove(0, 6).Replace("(", "").Replace(")", "").Replace("EST", "").Trim()
变成此字符串:Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)
Wed, 5 Nov 2008 13:12:12 -0500
然后,我可以使用以下内容适当格式化以生成我的文件名日期:
If Date.TryParse(buff1, dateValue) Then
MsgBox(Format(dateValue, "yyyyMMdd_HHmmss"))
Else
MsgBox("nope")
End If
格式(日期,“yyyyMMdd\u HHmmss”)
有关函数的更多帮助。如果VB指的是VB.NET,则可以使用
Date.Parse
,后跟带有格式字符串的ToString()
:
Date.Parse(YourDateString).ToString("yyyyMMdd_HHmmss")
注意:在解析字符串之前删除初始的“Date:”。甚至比
Date更好。在这种情况下,解析将是Date.TryParseExact()
。这将让您告诉框架您期望的格式,并返回一个布尔值,而不是在解析失败时抛出异常
然后使用.ToString(“yyyyMMdd\u HHmmss”)
获取所需的新字符串格式
以下是格式字符串参考,以备需要:
最后,我注意到您忽略了-500时区偏移。您确定所有字符串都来自同一时区吗?类似于VB.NET中的@splattne解决方案,但也有清理功能
Dim strDateVal As String = "Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)"
strDateVal = strDateVal.Substring(strDateVal.IndexOf(", ") + 2, strDateVal.Length - strDateVal.IndexOf(", ") - 2)
strDateVal = strDateVal.Substring(0, strDateVal.LastIndexOf(" ")).TrimEnd
Dim DateVal As Date = Date.Parse(strDateVal)
Dim NewStringVal As String = Format(DateVal, "yyyyMMdd_HHmmss")
注意:这会忽略时区以匹配您的预期结果(根据问题中的示例数据)对于纯VB解决方案,我会选择
Function ConvertDateString(ByVal Original As String) As String
Dim Elements As String() = Split(Original, " ")
Dim DateString As String = Elements(3) & " " & Elements(2) & " " & Elements(4) & " " & Elements(5)
Return Date.Parse(DateString).ToString("yyyyMMdd_HHmmsss")
End Function
您可以通过在Parase中使用连接的字符串来消除DateString。如果分辨率为1024 x 768或更大,它将适合一行。这是vb6、vba还是vb.net?vb.net Visual Basic 2005如果您假设它总是EST,您最好将替换缩短为-->buff1。删除(0,6)。替换((EST)”,“”)这些应该是大写的H。此外,这也适用于日期对象,但问题是关于一个特殊格式的字符串,其中包含需要清除的额外信息。
Dim strDateVal As String = "Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)"
strDateVal = strDateVal.Substring(strDateVal.IndexOf(", ") + 2,
strDateVal.Length - strDateVal.IndexOf(", ") - 2)
strDateVal = strDateVal.Substring(0, strDateVal.LastIndexOf(" ")).TrimEnd
Dim DateVal As Date = Date.Parse(strDateVal)
Dim NewStringVal As String = Format(DateVal, "ddMMyyyy_HHmmss")