gpt4 book ai didi

java - 将 long 值从 java Date.getTime() 转换为 VB.Net 中的 DateTime

转载 作者:行者123 更新时间:2023-11-30 02:55:10 25 4
gpt4 key购买 nike

我有两个不同的应用程序,一个使用java,另一个使用VB.NET。 java应用程序将对象转换为json并以文本形式保存到数据库,如下所示

    [{"from_time":"07:30:00","end_time":"17:00:00","purpose":"","perform_date":1462035600000,"day_time":false,"night_time":false}]

perform_date:1462035600000 在java中等于“Sun May 01 00:00:00 ICT 2016”,但我尝试将此数字转换为VB.NET中的DateTime,但它显示不同的日期“01-Jan-01 12:00 :00 上午”。

测试 VB.NET 代码

Dim d = New Date()
d.AddMilliseconds(1462035600000)
Console.WriteLine(CType(d, Date).ToString())

输出:

01-Jan-01 12:00:00 AM

测试Java代码:

long d = Long.parseLong("1462035600000");
performDate.setTime(d);
System.out.println(performDate.toString());

输出:

Sun May 01 00:00:00 ICT 2016

我做的是错误的,我是VB.NET的新手。请帮忙

最佳答案

Java 使用 unix 时间戳。您需要在 1970 年 1 月 1 日开始约会

如果您位于 ICT 时区,您可能可以使用 LocaL 作为日期时间类型。否则,您可以获取 UTC 日期时间形式的日期时间,然后手动添加 7 小时。

Dim JavaTimeStamp As Long = 1462035600000
Dim MyDateTimeUTC as DateTime = GetUTCDateFromTimeStamp(JavaTimeStamp).addhours(7) 'Add 7 hours to match current ICT time (I had no consideration for saving time)
Dim MyDateTimeLocal as DateTime = GetLocalDateFromTimeStamp(JavaTimeStamp)

Public Function GetUTCDateFromTimeStamp(TimeStamp as long) As DateTime
static startTime As New DateTime(1970, 1, 1, 0, 0, 0,DateTimeKind.Utc)
return Starttime.AddMilliseconds(TimeStamp)
End Function

Public function GetLocalDateFromTimeStamp(TimeStamp as long) as DateTime
static startTime As New DateTime(1970, 1, 1, 0, 0, 0,DateTimeKind.Local)
return Starttime.AddMilliseconds(TimeStamp)
End function

关于java - 将 long 值从 java Date.getTime() 转换为 VB.Net 中的 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37450139/

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