java中Date转化为Calendar问题,请大家帮忙看下咋回事

dengyulong 2013-03-25 08:39:33
public static void main(String[] args) {

Date d = new Date(2012,3,2);

Calendar date = Calendar.getInstance();
date.setTime(d);
System.err.println(date.get(Calendar.YEAR)); //输出3912

}

就是想把Date转化为Calendar ,谁知获取年份时输出的事3912,而不算2012,这是怎么回事?
...全文
269 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
valid25f 2013-03-25
  • 打赏
  • 举报
回复
一般都是calendar转date 为什么要date转calendar 直接Calendar date = Calendar.getInstance(); date.set(2013,3,2)不就行了?
zoeg 2013-03-25
  • 打赏
  • 举报
回复
Date @Deprecated public Date(int year, int month, int date) 已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代。 分配 Date 对象并初始化此对象,以表示由 year、month 和 date 参数指定的一天的开始时间(本地时间晚上 12 时)。 参数: year - 减 1900 的年份。 month - 0-11 的月份。 date - 一月中 1-31 之间的某一天。 另请参见: Calendar
诗错亦染瑾 2013-03-25
  • 打赏
  • 举报
回复
public static void main(String[] args) { Date d = new Date(System.currentTimeMillis()); Calendar date = Calendar.getInstance(); date.setTime(d); System.err.println(date.get(Calendar.YEAR)); //输出3912 } 已经输出成功 是2013 哈哈
luobuxiadeye 2013-03-25
  • 打赏
  • 举报
回复
看文档 “年份 y 由整数 y - 1900 表示。”
-AJ- 2013-03-25
  • 打赏
  • 举报
回复
1900是起始值,减掉就好了。
终结i络 2013-03-25
  • 打赏
  • 举报
回复
看我的 Date time = new Date(); System.out.println("year = " + time.YEAR):
终结i络 2013-03-25
  • 打赏
  • 举报
回复
我是看不懂你的;

62,628

社区成员

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

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