开发者社区 问答 正文

Java Calendar中的getTime()方法

Calendar calendar=Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
calendar.clear(); 
calendar.set(1970, 0, 1,0,0,0); 
System.out.println(calendar.getTime()); 

为什么输出结果是Thu Jan 01 08:00:00 CST 1970
而不是Thu Jan 01 00:00:00 CST 1970

展开
收起
蛮大人123 2016-05-31 11:13:42 4559 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    打印出来的时间没错,转换为UTC(GMT)时间确实是你传给Calendar的时间。
    calendar.setTimeZone指定了Calendar以什么时区解析你设置的时间,而toString打印了CST时区,是因为系统默认时区就是CST的,Date.toString会以系统时区的形式展示。
    使用下面代码设置时区就会打印对对应时区的时间:
    TimeZone.setDefault(TimeZone.getTimeZone("GMT"));

    2019-07-17 19:21:36
    赞同 展开评论
问答分类:
问答地址: