1,Date,DateFomat
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//Date 获得当前的系统时间
Date now = new Date();
System.out.println(now); //输出结果:Sat Jun 04 17:19:17 CST 2016
//SimpleDateFormat 进行字符串和日期之间的转换
// 1)将日期转换为字符串
SimpleDateFormat date = new SimpleDateFormat();
System.out.println(date.format(now)); //输出结果:16-6-4 下午5:25
// 2) 用字符串模板将日期转换为字符串
SimpleDateFormat dates = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(dates.format(now)); //输出结果:2016年06月04日 17:29:22
SimpleDateFormat dates2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dates2.format(now)); //输出结果:2016-06-04 17:31:03
System.out.println(dates2.toPattern()); //输出结果:yyyy-MM-dd HH:mm:ss
//将指定的字符串解析为时间
String s = "2016-06-04 17:31:03";
SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date2 = time.parse(s);
System.out.println(date2); //输出结果:Sat Jun 04 17:31:03 CST 2016
} catch (ParseException e) {
e.printStackTrace();
}
}
}
2,Calendar
Calendar类是一个抽象类,它为特定的瞬间与一组诸如YEAR,MOUTH,DAY_OF_MOUTH,HOU等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
//Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化
Calendar c = Calendar.getInstance();
System.out.print(c.get(Calendar.YEAR)+"年");
System.out.print(c.get(Calendar.MONTH)+1+"月");
System.out.print(c.get(Calendar.DAY_OF_MONTH)+"日");
System.out.print(c.get(Calendar.HOUR)+":");
System.out.print(c.get(Calendar.MINUTE)+":");
System.out.print(c.get(Calendar.SECOND)+":"); //输出结果:2016年5月4日5:59:36
System.out.println(c.get(Calendar.DAY_OF_WEEK)-1);
//一个月之后
c.add(Calendar.MONTH, 1);
System.out.println("一个月之后的此时是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS").format(c.getTime()));
//比较时间的大小
Calendar a = Calendar.getInstance();
Calendar b = Calendar.getInstance();
//设定为 1个月以前,b大,结果显示 1 若b小显示-1 若相等显示为0
b.add(Calendar.MONTH, 1);
System.out.println(b.compareTo(a)); //输出结果为1
//判断2079年的二月是多少天
Calendar test = Calendar.getInstance();
test.set(2079, 2, 1);
test.add(Calendar.DATE, -1);
System.out.println(test.get(Calendar.DATE)); //28
}
}
注:Calendar.MONTH的初始值为0 所以获得当前月时应+1 而Calendar.DAY_OF_WEEK要-1