时间和日期的处理方法:
日期类型与字符串转换:
方法的应用:
//新建一个时间对象,默认是当前的时间
Date d = new Date();
System.out.println(d);
//时间戳:从1970-1-1 00:00:00开始计数的时间毫秒数
Date d2 = new Date(System.currentTimeMillis()-24*60*60*1000);
System.out.println(d2);
System.out.println(System.currentTimeMillis());
//Calendar用法
Calendar cal = Calendar.getInstance();
//设置当前基准时间
cal.setTime(d);
//手动设置时间
//set第一个参数:filed是设置的时间属性
//set第二个参数:value是设置的值(修改)
cal.set(Calendar.DATE, 2);
System.out.println(cal.getTime());
//add方法,增加或减少时间值
//增加(修改时间)
//cal.add(Calendar.DATE, 2);
//System.out.println(cal.getTime());
cal.set(Calendar.HOUR_OF_DAY, 13);
System.out.println(cal.getTime());
//格式化时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss 今天是一年中的第D天");
String n = sdf.format(cal.getTime());
System.out.println(n);
实例1:获取当前的时间,并以年-月-日方式显示
Date d = new Date();
SimpleDateFormat format = new SimpleDateFormat("今天是:yyyy-MM-dd");
System.out.println(format.format(d));
2.小旭今天刚刚拍完写真,40天之后才能出底片,请问应该在哪天去取?(
以年-月-日方式显示)
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 40);
SimpleDateFormat format2 = new SimpleDateFormat("\n小旭应该 yyyy-MM-dd 去取底片");
System.out.println(format2.format(cal.getTime()));
3.求从1970年到2011年,共有多少个闰年
int j = 0;
for(int i = 1970;i<=2011;i++){
GregorianCalendar gc = new GregorianCalendar();
boolean isLeapYear = gc.isLeapYear(i);
if(isLeapYear){
j++;
}
}
System.out.println("\n从1970年-2011年,共有"+j+"个闰年");
4.(1)返回两个日期之间相差的天数
(2)毫秒转日期
(3)返回今天的日期
(4)返回当前日期加减后的日期
(5)返回指定日期的加减天数
(6)日期格式化
public class Ch05 {
public static int twoDate(Date fDate,Date oDate){
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(fDate);
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
aCalendar.setTime(oDate);
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
return day2 - day1;
}
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
//1.返回两个日期之间相差的天数
SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日");
Date date1 = format1.parse("2018年5月6日");
Date date2 = format1.parse("2018年7月15日");
System.out.println("第一个日期:"+format1.format(date1.getTime()));
System.out.println("第二个日期:"+format1.format(date2.getTime()));
Calendar cal11 = Calendar.getInstance();
Calendar cal12 = Calendar.getInstance();
cal11.setTime(date1);
cal12.setTime(date2);
Date fDate = cal11.getTime();
Date oDate = cal12.getTime();
System.out.println("两个日期相差的天数是:"+twoDate(fDate,oDate)+"天");
//2.毫秒转日期
Long l = 124445678996l;
Date date = new Date(l);
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(date);
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String f = format.format(gc.getTime());
System.out.println("\n"+l+"毫秒转成日期是:"+f);
//3.返回今天的日期
Date d2 = new Date();
SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String f2 = format.format(d2.getTime());
System.out.println("\n今天的日期是"+f2);
//4.返回当前日期加减后的日期
Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 20);
cal1.add(Calendar.DAY_OF_MONTH, -20);
SimpleDateFormat format3 = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println("\n当前日期加20天后的日期是:"+format3.format(cal.getTime()));
System.out.println("当前日期减20天后的日期是:"+format3.format(cal1.getTime()));
//5.返回指定日期的加减天数
SimpleDateFormat format5 = new SimpleDateFormat("yyyy年MM月dd日");
Date date5 = format5.parse("2017年5月6日");
System.out.println("\n初始化时间为:"+format5.format(date5.getTime()));
Calendar cal5 = Calendar.getInstance();
Calendar cal6 = Calendar.getInstance();
cal5.setTime(date5);
cal6.setTime(date5);
cal5.add(Calendar.DAY_OF_YEAR, 25);
cal6.add(Calendar.DAY_OF_MONTH, -25);
// SimpleDateFormat format5 = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println("当前日期加25天后的日期是:"+format5.format(cal5.getTime()));
System.out.println("当前日期减25天后的日期是:"+format5.format(cal6.getTime()));
//6.日期格式化
Date d3 = new Date();
System.out.println("\n当前时间(未格式化):"+d3);
SimpleDateFormat format6 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String f6 = format.format(d2.getTime());
System.out.println("当前时间(格式化后):"+f6);
}
}