首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java (Processing Environment)不会为我提供本地时间

Java (Processing Environment)不会为我提供本地时间
EN

Stack Overflow用户
提问于 2011-09-20 16:58:49
回答 1查看 192关注 0票数 0

我正在尝试根据当地时区调整epoc时间(即GMT-7,但显示为GMT)。我很确定这应该行得通,但这不是...

代码语言:javascript
复制
Calendar localTime = new GregorianCalendar(TimeZone.getDefault());
Date dd = localTime.getTime();
long t = dd.getTime()/1000; 
System.out.printf("%d\n",t);

但它仍然输出基于GMT的epoc时间,而不是GMT-7 (我的时区)。在玩了一段时间后,我确实得到了这个工作...

代码语言:javascript
复制
Date ddd = new Date();
long t = ddd.getTime() + TimeZone.getDefault().getOffset( ddd.getTime() );
t = t/1000;

但是为什么第一个块不起作用呢?

EN

回答 1

Stack Overflow用户

发布于 2011-09-20 17:18:56

Date对象简单地包装了从纪元开始以毫秒为单位的协调时。这就是Java中“幕后”表示所有时间的方式。这也使得它在使用时保持一致。无论何时要打印输出,请对其应用TimeZone偏移和DST偏移。

这就是为什么SimpleDateFormat类接受TimeZone,而Date类上没有TimeZone设置器的原因。

必备:我听说Joda Time是一个更容易使用的datetime API。

另外,还可以看看Java语言中的标准日期和时间库中的this post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7482568

复制
相关文章

相似问题

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