首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何才能正确获取Java中的当前时间?

如何才能正确获取Java中的当前时间?
EN

Stack Overflow用户
提问于 2011-03-10 22:12:17
回答 3查看 2.8K关注 0票数 1

这段C#代码对应的Java代码是什么?

代码语言:javascript
运行
复制
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有什么不同呢?

目前,我使用的是这段o‘Java:

代码语言:javascript
运行
复制
public static long getCurrentTimeMillis(){
    TimeZone here = TimeZone.getDefault();
    Time time = new Time(here.toString());
    time.setToNow();
    return time.toMillis(false);
}

但这两段代码之间的差异是显著的……C#代码比Java代码多出150多万毫秒...如何从Java代码中获得以毫秒为单位的正确时间?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-10 22:13:46

使用以下命令:

代码语言:javascript
运行
复制
System.currentTimeMillis()

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

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

代码语言:javascript
运行
复制
long Offset = new Date(100, 0, 1, 0, 0, 0).getTime();
long DotNetTime = System.currentTimeMillis() - Offset;

当然,计算一次此偏移量并将其设置为常量将是明智的。

票数 9
EN

Stack Overflow用户

发布于 2011-03-10 22:14:37

System.currentTimeMillis()是正确的

票数 3
EN

Stack Overflow用户

发布于 2011-03-10 22:15:43

试一试

代码语言:javascript
运行
复制
System.currentTimeMillis()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5260809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档