日期:2014-05-20  浏览次数:20663 次

一个类型转换的问题
我从BusinessObject的一个日历组件中获得一个日期数,例如:39196   类型为int型
我要怎样把这个数字转为为我们日常用的日期格式例如:2007-04-23?


------解决方案--------------------
这个日期数值表示什么含义?是从某年某月某日到现在的天数?
------解决方案--------------------
Calendar c = GregorianCalendar.getInstance();
c.set(Calendar.YEAR, 2007);
c.set(Calendar.MONTH, 4);
c.set(Calendar.DAY_OF_MONTH, 23);
c.add(Calendar.DAY_OF_MONTH, -39196);
System.out.println(new SimpleDateFormat( "yyyy-MM-dd ").format(c.getTime()));

得出结果为“1900-01-28”。可见这个日期数值是从1900年1月28日算起的。
------解决方案--------------------
lz,你看一下YidingHe(机枪兵)回复的代码,同样的道理,可以这么来写:

Calendar c = GregorianCalendar.getInstance();
c.set(Calendar.YEAR, 1899);
c.set(Calendar.MONTH, 12);
c.set(Calendar.DAY_OF_MONTH, 31);
c.add(Calendar.DAY_OF_MONTH, 39196);
System.out.println(new SimpleDateFormat( "yyyy-MM-dd ").format(c.getTime()));

就会输出你希望得到的答案