gpt4 book ai didi

java - 将 VB6 Dbl 日期值转换为 Java 长值

转载 作者:行者123 更新时间:2023-11-30 03:18:27 27 4
gpt4 key购买 nike

我有一个旧的 VB6 应用程序,它通过 CDbl(Now) 类型语句向我发送一个 double 日期值。在 java 端,当前代码将值读取为 new Date(Long.parse(value))

我无法修改java端,但可以更改VB6代码。我将如何获取 Long.parse 的正确浮点值来解析正确的日期和时间值。

我认为 java 日期从 0 开始,从那里开始计数(我认为 1/1/1970),VB 6 日期可能是相同类型的想法,但我发现这很困难追踪有关 VB6 数据类型的信息。据推测,如果我知道日期之间的差异是什么,并且测量单位相同,我就可以抵消发送到 java 应用程序的值。

最佳答案

您可以尝试的一件事是调用 VariantTimeToSystemTime在 VB6 端,将生成的 SYSTEMTIME 结构封装为 Double,遵循 Java 的日期/时间编码规则。 (我不知道这些规则,所以我假设它们与 OLE 日期/时间编码规则不同。如果它们相同,您可以直接传递 Double 。)

如果需要在VB6中直接访问日期值的字节,可以调用VarPtr() - 这为您提供了变量的地址,您可以根据需要读取字节。它可能比调用CDbl()更安全。 (我目前没有安装 VB6,但转换函数可能会对输入值执行有趣的技巧。调用 VariantTimeToSystemTime 可以避免使用 CDbl()。)

关于java - 将 VB6 Dbl 日期值转换为 Java 长值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946330/

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