gpt4 book ai didi

java - 在 C# 和 Java 之间传递 DateTime?

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:03 25 4
gpt4 key购买 nike

我有两个网站,一个是 C#.NET,另一个是 Java。我需要在 C# 中创建一个 DateTime 对象,将其序列化,并将其附加到 Java 站点可以理解的 URL。

我知道我应该使用 UTC 时间来执行此操作。至于在 C# 中序列化 DateTime 并在 Java 中反序列化,最好的“存储”格式是什么?

我想我应该在 C# 中使用像刻度这样的东西,但我不确定 Java 是否支持该功能。

最佳答案

我认为您可以使用此 Java 类中的转换在 .NET 刻度(自神奇时间以来的 100 纳秒)和 Java 刻度(自另一个时间以来的毫秒)之间进行转换:

public class DateTime 
{
static private long TICKS_AT_EPOCH = 621355968000000000L;

long ticks;

public DateTime(long t) {
ticks = t;
}

public DateTime(Date date) {
ticks = TICKS_AT_EPOCH + 10000 * date.getTime();
}

public long Ticks() { return ticks; }

static public DateTime fromJavaMillis(long millis)
{
return new DateTime(TICKS_AT_EPOCH + 10000 * millis);
}

public Date ToDate()
{
return new Date((ticks-TICKS_AT_EPOCH)/10000);
}
}

注意 - 我确信我可能很久以前就在互联网上的某个地方找到了 - 所以感谢创始人:)。

然后您可以使用其中的刻度进行序列化 - 这可以在另一端直接构造一个 .NET DateTime。

关于java - 在 C# 和 Java 之间传递 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40591899/

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