在c#和Java之间传递DateTime
本文关键字:DateTime 之间 Java | 更新日期: 2023-09-27 18:17:54
我有两个网站,一个是在c#。NET,另一个是Java。我需要在c#中创建一个DateTime对象,将其序列化,并将其附加到Java站点可以理解的URL。
我知道我应该使用UTC时间来做这件事。至于在c#中序列化DateTime和在Java中反序列化它,什么是最好的"存储"格式?
我想我应该在c#中使用像tick这样的东西,但我不确定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。