以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,如何获取字符串中日期部分?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22658)

--  作者:baoxyang
--  发布时间:2012/8/20 15:31:00
--  求助,如何获取字符串中日期部分?

如:会议时间2012-08-01开始。

如何只获取2012-08-01呢?

但有可能日期格式不一定固定的,谢指教!

[此贴子已经被作者于2012-8-20 15:31:59编辑过]

--  作者:czy
--  发布时间:2012/8/20 16:46:00
--  
格式不确定好像不容易解决
--  作者:狐狸爸爸
--  发布时间:2012/8/21 8:15:00
--  

这样就行了,你在命令窗口执行下面的代码:

 

Dim s As String  = "会议时间2012-8-1开始"
Dim d As Date
For i As Integer = 0 To s.Length - 10
    If Date.TryParse(s.SubString(i,10),d) OrElse Date.TryParse(s.SubString(i,9),d) OrElse Date.TryParse(s.SubString(i,8),d) Then
        output.show(d)
        Exit For
    End If
Next

[此贴子已经被作者于2012-8-21 8:22:05编辑过]

--  作者:mr725
--  发布时间:2012/8/21 9:33:00
--  

用这个非主流的吧,2012-8-1,2012-08-01,20120801,2012年08月01日 等格式都可以:

Dim s As String  = "会议时间2012-08-01开始"
Dim d As String
Dim nmb As String = "0123456789-年月日"   
For i As Integer = 0 To s.Length - 1
    If nmb.contains(s(i))
        d = d & s(i)
    End If
Next
output.show(d)


--  作者:mr725
--  发布时间:2012/8/21 10:03:00
--  
呵呵,以为只是日期部分呢,还有x点xx分啊····  麻烦了·