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

标签 java c# datetime

我有两个网站,一个是 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/

相关文章:

java - 为什么当我尝试通过 Intent 传递 Interface 对象时,Parcelable 遇到 IOException

Java读取文件名并按升序存储

c# - Odbc Paradox 驱动程序 WHERE 子句 日期

带有接口(interface)的 C# 重载方法行为

java - java ' assert ' 和 ' if () {} else exit;' 之间的区别

java - Java 中 toString(int) 的用途

c# - FileNotFoundException IIS7

python - 使用时间戳与使用 timedelta 的时间添加之间的区别?

datetime - 我的 xpages 上仅在午夜为用户调整日期

python - 从 Dbf 到 numpy 数组