Date要获取指定定格式的日期需要用Format的子类SimpleDateFormat.
Date d=new Date()
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//括号类可指定格式
String date=sdf.format(d);
Date操作日期比较麻烦。
使用Calendar能单独获取字段(年,月,日等等),而Date的这些方法已过时
两个小练习:
//目的:获取任意年的二月有多少天
package demo;
import java.util.*;
class Demo{
public static void main(String [] args)
{
System.out.println(getDays(2015));
}
public static int getDays(int years)
{
Calendar c=Calendar.getInstance();//获得一个日历的实例,此日历为默认日历(当前的日期)
c.set(years, 2,1);//将日历设置为传入年份的3月1日
c.add(Calendar.DAY_OF_MONTH, -1);//将日历向前推一天即为2月的最后一天
return c.get(Calendar.DAY_OF_MONTH);//获取天数字段返回
}
}
//目的:获取昨天的现在这个时刻,精确到分
package demo;
import java.util.*;
class Demo{
public static void main(String [] args)
{
Calendar c=Calendar.getInstance();//获得一个日历的实例,此日历为默认日历(当前的日期)
print( getDays( c));//将返回值打印
}
public static Calendar getDays(Calendar c)//传入当前日历返回昨天的日历
{
c.add(Calendar.DAY_OF_MONTH, -1);//将当前日期往后减一天即为昨天此刻的日期,然后返回
return c;
}
public static void print(Calendar c){//打印日历的方法
String[] str={"一","二","三","四","五","六","七","八","九","十","十一","十二"};
int index=c.get(Calendar.MONTH);
String[] week ={"","周日","周一","周二","周三","周四","周五","周六"};//周日到周六应该对应1-7
int index1=c.get(Calendar.DAY_OF_WEEK);
System.out.println(c.get(Calendar.YEAR));
System.out.println(str[index]);
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(week[index1]);
System.out.println(c.get(Calendar.HOUR_OF_DAY));
System.out.println(c.get(Calendar.MINUTE));
}
}