gpt4 book ai didi

excel - 包含迄今为止毫秒数的 VBA 字符串

转载 作者:行者123 更新时间:2023-12-02 10:40:29 27 4
gpt4 key购买 nike

我有一个格式为“yyyy-mm-dd hh:mm:ss.mmm”的字符串(结尾是毫秒)

我想将其转换为数字,最好是日期,这样可以保留所有信息

我尝试过CDate(),例如。

Dim dateValue As Date
dateValue = CDate("2017-12-23 10:29:15.223")

但是出现类型不匹配错误

最佳答案

Date 类型保存自 1899 年 12 月 30 日 以来的天数,精度为一秒。尽管仍然可以通过以货币类型存储日期来保存毫秒,因为与日期/ double 相比,它可以保存 4 个额外的数字。

因此,另一种方法是将日期存储为 Currency 类型中的时间戳,表示自 1899 年 12 月 30 日 以来的秒数:

Public Function CDateEx(text As String) As Currency
Dim parts() As String
parts = Split(text, ".")
CDateEx = CCur(CDate(parts(0)) * 86400) + CCur(parts(1) / 1000)
End Function

并将时间戳转换回字符串:

Public Function FormatDateEx(dt As Currency) As String
FormatDateEx = Format(dt / 86400, "yyyy-mm-dd HH:mm:ss") & "." & ((dt - Fix(dt)) * 1000)
End Function

关于excel - 包含迄今为止毫秒数的 VBA 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951860/

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