我有这个日期TimeAndDateTZ = "2014-12-15T21:48:40Z"
我试图从中得到两个不同的变量:
期望的输出:
Date = "2014-12-15"
Time24 = "21:48:40"
Time12 = "09:48:40"
我知道我可以将它分开()在“T”上并替换()“Z”,但我想知道要正确地做到这一点。
我试图使用CDATE和DateValue,但是我收到了错误。
我做错了什么?
编辑:
一切都将继续用作字符串,是TimeAndDateTZ
是一个字符串。
编辑#2:
(见我的回答)
答案 0 :(得分:0)
DateSerial()
和TimeSerial()
将是一个很好的起点。有关详细信息,请参阅This Tutorial。由于您的TimeAndDateTZ
似乎是字符串,因此您需要提取日期和时间的各个部分,并将组件添加到DateSerial()
和TimeSerial()
方法中。
答案 1 :(得分:0)
请考虑以下事项:
Sub dural()
TimeAndDateTZ = "2014-12-15T21:48:40Z"
ary = Split(Replace(TimeAndDateTZ, "Z", ""), "T")
Datee = ary(0)
Time24 = ary(1)
Time12 = Split(CStr(TimeValue(Time24)), " ")(0)
MsgBox Datee & vbCrLf & Time24 & vbCrLf & Time12
End Sub
答案 2 :(得分:0)
Sub DateTest()
Dim strDate As String
strDate = "2014-12-15T21:48:40Z"
Set objRegExp = CreateObject("vbscript.regexp")
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}Z"
If objRegExp.Test(strDate) Then entDate = objRegExp.Replace(strDate, "")
objRegExp.Pattern = "[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2}"
If objRegExp.Test(strDate) Then entTime = objRegExp.Replace(strDate, "")
entTime = Replace(entTime, "T", ""): entTime = Replace(entTime, "Z", "")
End Sub