这段C#代码的相应Java代码是什么?
public static readonly DateTime Epoch = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
public static long Now
{
get { return (long)(DateTime.UtcNow - Epoch).TotalMilliseconds; }
}
我知道我可以使用Date
对象来计算它,但不是来自Java的Calendar
与C#的DateTime不同吗?
目前我使用的这篇文章是“Java:
”public static long getCurrentTimeMillis(){
TimeZone here = TimeZone.getDefault();
Time time = new Time(here.toString());
time.setToNow();
return time.toMillis(false);
}
但两段代码之间的差异很大...... C#代码比Java代码多出150万毫秒...... 我怎样才能从Java代码中获得正确的时间(以毫秒为单位)?
答案 0 :(得分:9)
使用此:
System.currentTimeMillis()
这是具有毫秒分辨率的unixtime,即自1970年1月1日午夜起的毫秒,the epoch
将此转换为您的替代纪元:
long Offset = new Date(100, 0, 1, 0, 0, 0).getTime();
long DotNetTime = System.currentTimeMillis() - Offset;
当然,计算此偏移一次并使其成为常数是可取的。
答案 1 :(得分:3)
System.currentTimeMillis()是正确的
答案 2 :(得分:1)
尝试
System.currentTimeMillis()