黑马程序员技术交流社区
标题:
Calendar中小问题
[打印本页]
作者:
zfgrinm
时间:
2015-3-3 14:06
标题:
Calendar中小问题
package d18;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Calendar c =Calendar.getInstance();
sop(c.get(Calendar.YEAR)+"年");
sop(c.get(Calendar.MONTH)+"月");
sop(c.get(Calendar.DATE)+"日");
Date d =new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 时间:HH:mm:ss");
sop(sdf.format(d));
c.set(2015,3,3);
sop(c.get(Calendar.YEAR)+"年");
sop(c.get(Calendar.MONTH)+"月");
sop(c.get(Calendar.DATE)+"日");
sop("2015年中第"+c.get(Calendar.DAY_OF_YEAR)+"天");
sop("星期中第"+c.get(Calendar.DAY_OF_WEEK)+"天");
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
复制代码
有两个小问题,一直没弄明白,求指教:
1.结果中为什么第一次获取的月份是二月,可现在明明是三月;
2.设置日期为2015,3,3后,获取的年月日都没错,但是获取年中的天数和星期中的天数却是2015年04月03日的当天的所对应的结果,为啥?
0000.png
(5.29 KB, 下载次数: 5)
下载附件
2015-3-3 14:02 上传
作者:
大手牵小手
时间:
2015-3-3 16:13
因为是从0开始的,你需要加一, 也就是sop(c.get(Calendar.MONTH)+1)+"月");
作者:
ZZGFF
时间:
2015-3-3 23:13
月份是0-11也就是(月份+1),星期是:1代表星期日,2代表星期一,3代表星期2,以此类推, 你需要写一个Switch判断一下。
作者:
sh1tge
时间:
2015-3-3 23:37
月份是从0-11
星期是 1代表星期日
楼主可以自定义数组,结合查表法
作者:
笑望长空,逆转
时间:
2015-3-4 10:38
因为月份是从0开始到11的,因此要获取当前日期后面得加1
作者:
zfgrinm
时间:
2015-3-4 14:05
明白了。谢了大家啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2