是否有一种简单的方法来转换包含此字符串的字符串:
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)
使用此代码:
buff1.Remove(0, 6).Replace("(", "").Replace(")", "").Replace("EST", "").Trim()
成为这个字符串:
Wed, 5 Nov 2008 13:12:12 -0500
然后我可以使用以下方式适当格式化以生成我的文件名日期:
If Date.TryParse(buff1, dateValue) Then
MsgBox(Format(dateValue, "yyyyMMdd_HHmmss"))
Else
MsgBox("nope")
End If
答案 0 :(得分:6)
在这种情况下,Date.Parse
甚至优于Date.TryParseExact()
。.ToString("yyyyMMdd_HHmmss")
。这会让你告诉框架你期望什么格式并返回一个布尔值,而不是在解析失败时抛出异常。
然后使用{{1}}获取所需的新字符串格式。
以下是格式字符串引用,以备不时之需:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
最后,我注意到你忽略了-500时区偏移量。你确定你的所有字符串都来自同一时区吗?
答案 1 :(得分:1)
如果用VB表示VB.NET,你可以使用Date.Parse
后跟ToString()
格式字符串:
Date.Parse(YourDateString).ToString("yyyyMMdd_HHmmss")
注意:在解析字符串之前删除初始的“Date:”。
答案 2 :(得分:1)
对于纯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或更大,它将适合一行。
答案 3 :(得分:0)
Format(date, "yyyyMMdd_HHmmss")
有关format功能的更多帮助。
答案 4 :(得分:0)
就像@splattne在VB.NET中的解决方案一样,但也需要进行清理......
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")
注意:这会忽略时区以匹配您的预期结果(根据问题中的示例数据)
答案 5 :(得分:0)
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")