gpt4 book ai didi

VBA\VB6 - 将数字转换为日期

转载 作者:行者123 更新时间:2023-12-04 13:26:39 28 4
gpt4 key购买 nike

VBA\VB6 -
我有一个长号:20141202153026
应该将其转换为日期\时间(只是要转回格式正确的日期字符串),如下所示:

2014/12/02 15:30:26

使用 CDate()只是不剪。
Format$("20141202153026", "dd/mm/yy hh:mm:ss")

好像也失败了。
这里需要一个方向。

编辑:我使用了 jac 的解决方案,效果很好。
但要记住的一件事是使用 cDate() 将结果转换回日期 - 确保区域设置启动并将年份和月份安排在正确的位置 DD/MM/YYYY
 CDate(Format$("20141202153026", "####/##/## ##:##:##"))

最佳答案

除了解析字符串之外,没有其他简单的方法可以做到这一点:

Const strText As String = "20141202153026"

Dim y As String, m As String, d As String
Dim h As String, n As String, s As String

y = Left$(strText, 4)
m = Mid$(strText, 5, 2)
d = Mid$(strText, 7, 2)
h = Mid$(strText, 9, 2)
n = Mid$(strText, 11, 2)
s = Right$(strText, 2)

Dim dtm As Date
dtm = DateSerial(y, m, d) + TimeSerial(h, n, s)

Debug.Print Format$(dtm, "dd/mm/yy hh:nn:ss") ' => "02/12/14 15:30:26"

编辑:

但是,如果您想添加对 Microsoft VBScript Regular Expressions 5.5 的引用图书馆,你可以让它更容易一点:
Dim re As New RegExp, dtm As Date
re.Pattern = "^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$"
dtm = re.Replace(strText, "$2/$3/$1 $4:$5:$6")

Debug.Print Format$(dtm, "dd/mm/yy hh:nn:ss") ' => "02/12/14 15:30:26"

关于VBA\VB6 - 将数字转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com