集合框架(六)(续) 实用类:时间和日期处理类

时间和日期的处理方法:



日期类型与字符串转换:


方法的应用:

//新建一个时间对象,默认是当前的时间
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);
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值