【发布时间】:2015-11-03 22:44:51
【问题描述】:
我有一个旧的旧版 VB6 应用程序,它通过 CDbl(Now) 类型语句向我发送一个日期值作为双精度值。在 java 端,当前代码读入的值为new Date(Long.parse(value))。
我不能修改java端,但是可以修改VB6代码。我将如何获取Long.parse 的正确浮点值以使用日期和时间解析正确的值。
我认为 java 日期从 0 开始在某个任意日期从那里开始计数(我认为 1/1/1970),VB 6 日期可能是同一类型的想法,但我发现它很难追踪有关 VB6 数据类型的信息。大概如果我知道日期之间的差异是什么,并且测量单位相同,我可以抵消我发送给 java 应用程序的值。
【问题讨论】:
-
如果我没记错的话,VB6 使用 OLE 日期/时间 (
VT_DATE)。这篇文章可能会让您入门:stackoverflow.com/questions/22476192/… -
@xxbbcc 不错!,这里面可能有我需要的东西……要读的东西很多……至少它是一个开始
-
使用 CLng 代替 CDbl...msdn.microsoft.com/en-us/library/s2dy91zy.aspx
-
不要使用
CLng-Long在 VB6 中是一个 32 位整数。如果需要访问值的实际字节,可以使用VarPtr()。
标签: java date vb6 type-conversion