c# - 如何正确获取 Java 中的当前时间?

标签 c# java time

这段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 代码中获取正确的时间(以毫秒为单位)?

最佳答案

使用这个:

System.currentTimeMillis()

这是具有毫秒分辨率的 unixtime,也就是自 1970 年 1 月 1 日午夜以来的毫秒数,the epoch

将其转换为您的替代纪元:

long Offset = new Date(100, 0, 1, 0, 0, 0).getTime();
long DotNetTime = System.currentTimeMillis() - Offset;

当然,建议一次计算此偏移量并将其设为常量。

关于c# - 如何正确获取 Java 中的当前时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260809/

相关文章:

c# - 有没有一种简单的方法可以找出类抛出的异常类型?

c# - 使用相同应用程序服务的多个应用程序

java - 长轮询的替代方案?

java - 从 Java HashMap 获取 Integer 值时是否需要调用 intValue() 方法?

c# - 时间跨度与持续时间

c# - 如何使用条件三元运算符分配 Func<>?

c# - 修改Linq代码,加入AND语句加入

java - Spring 开机测试 "No qualifying bean of type available"

python - 如何从设定时间中减去当前时间

time - 程序员每周应该花多少时间用于编码和学习