.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")