一、Calendar和GregorianCalendar的关系
GregorianCalendar的一点:
// 初始化 Gregorian 日历
// 使用当前时间和日期
// 默认为本地时间和时区
GregorianCalendar gcalendar = new GregorianCalendar();
// 显示当前时间和日期的信息
System.out.print("Date: ");
System.out.print(months[gcalendar.get(Calendar.MONTH)]);
System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
System.out.println(year = gcalendar.get(Calendar.YEAR));
System.out.print("Time: ");
System.out.print(gcalendar.get(Calendar.HOUR) + ":");
System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
System.out.println(gcalendar.get(Calendar.SECOND)); // 测试当前年份是否为闰年
if(gcalendar.isLeapYear(year)) {
System.out.println("当前年份是闰年");
}
else {
System.out.println("当前年份不是闰年");
}
二、 Calendar的使用注意事项
Java Calendar类月份从零开始计算,故使用Calendar类时,其中的MONTH为实际月份-1。为了显示正确,如果大兄弟你这样作了,那就错了。看代码,你是否犯了这样的错。为了显示正确,直接用set()方法让month+1【笑哭】。
public String getDayTime(Calendar calendar) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
calendar.set(year, month + 1, day + 1);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DATE);
return "(" + month + "月" + day + ")";
}
正确做法:
/**
* 获取当前时间一天以后的时间
*/
public static String getAfterDayTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int day = calendar.get(Calendar.DATE);
calendar.set(Calendar.DATE, day + 1);
int month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
return "(" + (month + 1) + "月" + day + ")";//只要在结果上给month加1,这样显示就正确了
}