首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB数据转换

VB数据转换
EN

Stack Overflow用户
提问于 2008-11-06 18:32:22
回答 6查看 1.9K关注 0票数 2

是否有一种简单的方法来转换包含以下内容的字符串:

代码语言:javascript
复制
Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)

转换为包含以下内容的字符串:

代码语言:javascript
复制
20081105_131212

更新:

最后我使用了date.tryparse,它类似于tryParseExact,只是您不必指定格式字符串。我确实必须消除()和EST,这样才能起作用。日期字符串将始终是EST,因为日期字符串来自一个web服务器。

原始字符串:

代码语言:javascript
复制
Date: Wed, 5 Nov 2008 13:12:12 -0500 (EST)

使用此代码:

代码语言:javascript
复制
buff1.Remove(0, 6).Replace("(", "").Replace(")", "").Replace("EST", "").Trim()

变成这串:

代码语言:javascript
复制
Wed, 5 Nov 2008 13:12:12 -0500

然后,我可以适当地格式化,以生成我的文件名日期,使用如下:

代码语言:javascript
复制
 If Date.TryParse(buff1, dateValue) Then
   MsgBox(Format(dateValue, "yyyyMMdd_HHmmss"))
 Else
   MsgBox("nope")
 End If
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-11-06 19:14:40

在这种情况下,比Date.Parse更好的是Date.TryParseExact()。这将使您能够告诉框架所期望的格式,并返回布尔值,而不是在解析失败时抛出异常。

然后使用.ToString("yyyyMMdd_HHmmss")获得所需的新字符串格式。

以下是格式字符串引用,以防您需要它:

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

最后,我注意到您忽略了-500时区偏移量。你确定你所有的字符串都来自同一个时区吗?

票数 6
EN

Stack Overflow用户

发布于 2008-11-06 19:04:47

如果VB的意思是VB.NET,您可以使用Date.Parse,然后使用格式字符串的ToString()

代码语言:javascript
复制
Date.Parse(YourDateString).ToString("yyyyMMdd_HHmmss")

注意:在解析字符串之前,删除初始的“日期:”。

票数 1
EN

Stack Overflow用户

发布于 2008-11-06 19:28:46

为了一个纯的VB解决方案,我会去

代码语言:javascript
复制
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乘768或更高的话,它可以放在一条线上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/269781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档