java中Date小问题

wyongliang 2009-03-03 02:44:33

Date date1 =new Date(1000);
Date date2=new Date(-1000);
SimpleDateFormat k=new SimpleDateFormat("'北京时间':yyyy年MM月dd日hh时mm分ss秒");
String k1 = k.format(date1);
String k2 =k.format(date2)
System.out.println(k1);
System.out.println(k2);

输出:
北京时间:1970年01月01日08时00分02秒
北京时间:1970年01月01日07时59分59秒

API上说时间不是从1970年1月1日0时开始吗?
为什么是从8时开始计算的?
...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
susoft2008 2009-03-03
  • 打赏
  • 举报
回复
不信把自己计算机时区改下 马上见分晓
传奇 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 MT502 的回复:]
是从格林威治时间的1970年1月1日0时开始的,你计算机的时区是GMT+8,自然要晚8个小时了。
[/Quote]
不知道这个解释是否正确哇?
susoft2008 2009-03-03
  • 打赏
  • 举报
回复
确实是时区问题。。
ouyangxiaokang6 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 MT502 的回复:]
是从格林威治时间的1970年1月1日0时开始的,你计算机的时区是GMT+8,自然要晚8个小时了。
[/Quote]
up 格林威治时间的1970年1月1日0时
Cyclone_hao 2009-03-03
  • 打赏
  • 举报
回复
api中是这样说的
使用构造方法Date(long date):分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
实参指的是毫秒数
MT502 2009-03-03
  • 打赏
  • 举报
回复
是从格林威治时间的1970年1月1日0时开始的,你计算机的时区是GMT+8,自然要晚8个小时了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧