我正在解析一些xml的电视指南数据并遇到了这个18位数的时间戳(633934980000869533)。看起来像C#的DateTime滴答声。有谁知道如何将其转换为常规的Java日期/时间?
答案 0 :(得分:5)
如果是一个.NET滴答值,你只需要进行缩放和重新定位。
1970年1月1日午夜由.NET中的621355968000000000个刻度表示,1毫秒= 10,000个刻度...所以:
public static Date fromDotNetTicks(long ticks)
{
// Rebase to Jan 1st 1970, the Unix epoch
ticks -= 621355968000000000L;
long millis = ticks / 10000;
return new Date(millis);
}
显然,您可能希望将这些魔术数字提取到命名常量中:)
我刚检查过,上面的代码是2009年11月11日凌晨1点。