在看一些JAVA教程中有关日期的教程中,经常有一些Calendar的实例代码如下:
public class CalendarTest
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(Calendar.YEAR));
//取出月份
System.out.println(c.get(Calendar.MONTH));
//取出日
System.out.println(c.get(Calendar.DATE));
//分别设置年、月、日、小时、分钟、秒
c.set(2003, 10, 23, 12, 32, 23);//2003-11-23 12:32:23
System.out.println(c.getTime());
//将Calendar的年前推1年
c.add(Calendar.YEAR, -1);
System.out.println(c.getTime());
//前推8个月
c.roll(Calendar.MONTH, -8);
System.out.println(c.getTime());
}
}
由于上面的代码不完整,把导入包的语句省略掉了,对于初学者着来说,代码写完后,编译时就会提示“找不到符号”的错误:
如上图,对于这个提示的这个类,大家查一下API文档就知道:Calendar位于java.util包中,在代码开头加上
import java.util.Calendar;
就可以了,但编译时还会提示,变量YEAR找不到,其实这个地方使用了静态导入,静态导入后代码中才可以直接使用“YEAR”、“MONTH”等变量,有关“静态导入”的详细说明大家百度一下吧,上面实例的完整代码如下:
import java.util.Calendar;
import static java.util.Calendar.YEAR;
import static java.util.Calendar.MONTH;
import static java.util.Calendar.DATE;
public class CalendarTest
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(Calendar.YEAR));
//取出月份
System.out.println(c.get(Calendar.MONTH));
//取出日
System.out.println(c.get(Calendar.DATE));
//分别设置年、月、日、小时、分钟、秒
c.set(2003, 10, 23, 12, 32, 23);//2003-11-23 12:32:23
System.out.println(c.getTime());
//将Calendar的年前推1年
c.add(Calendar.YEAR, -1);
System.out.println(c.getTime());
//前推8个月
c.roll(Calendar.MONTH, -8);
System.out.println(c.getTime());
}
}
备注:如无特别说明,本人的相关代码默认在JDK1.8环境下编译,不同的环境,编译结果可能不同。