A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戴振良 黑马帝   /  2012-2-16 21:33  /  1801 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 戴振良 于 2012-2-18 16:09 编辑
  1. import java.util.*;//Calendar位于此包中
  2. public class TestCalendar {
  3.         public static void main(String[] args) {
  4.                 Calendar c1=Calendar.getInstance();
  5.                 System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+"月"+
  6.                         c1.get(c1.DAY_OF_MONTH)+"日:"+c1.get(c1.HOUR)+"时"+c1.get(c1.MINUTE)+
  7.                         "分"+c1.get(c1.SECOND)+"秒");
  8.                 c1.add(c1.DAY_OF_YEAR,315);
  9.                 System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+"月"+
  10.                         c1.get(c1.DAY_OF_MONTH)+"日:"+c1.get(c1.HOUR)+"时"+c1.get(c1.MINUTE)+
  11.                         "分"+c1.get(c1.SECOND)+"秒");
  12.         }       
  13. }
复制代码
2012年1月13日:5时43分52秒
2012年11月24日:5时43分52秒

Calendar.getInstance()方法获取的不是当前的时间吗?
而我当时的时间是2012年2月14日,怎么输出了1月13日呢?小时也不对。为什么呢?
有图有真相:

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
哈哈哈 + 10
admin + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 pengfangjava 于 2012-2-16 22:00 编辑

关于月份的差距,可以从JDK 帮助文档中找到答案:The first month of the year is JANUARY which is 0;
小时的差距是因为时区引起的时差,你可以这样写:Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+8:00"));

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
Calendar中的月份是从0开始的,你要自己加1
回复 使用道具 举报
关于月份的差距,可以从JDK 帮助文档中找到答案:The first month of the year is JANUARY which is 0;
小时的差距是因为时区引起的时差,你可以这样写:Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+8:00"));
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马