Java中玩转日期类的3个类(java.util.Date、java.util.Calender、java.util.DataFormat)

1)、java.util.Date日期类:Date d=new Date();

用于表示或存储精确值(long 型值)

通常用于进行精确值的获取或计算,用计算后的精确值创建一个新的日期对象,精确值==当前日期时间的距离“1970年1月1日0时0分0秒0毫秒”所经过的毫秒值

@Test
	public void Demo1(){
		Date d=new Date();//输出当前时间要用d.toString();
		long lg=d.getTime();
		
		lg=lg+24*60*60*1000L;//常量值后面要加L防止bug
		Date d2=new Date(lg);//将计算后的精确值封装成一个Data对象
		
		int y=d.getYear();//已经过时,有关于获取年月日的方法全部过时,以后要用Calender
		System.out.println(lg+","+y);
	}

计算程序运行的时间:可以在程序运行之前和程序运行之后的位置加入语句,long t=new Data().getTime();//获得的是毫秒值

最后用t(结束)-t(开始)就好

2)、java.util.Calender日历类:

提供了很多日期和时间方面的操作运算

获得年月日,时分秒,星期几等也可以以这些单独进行运算

	@Test
	public void Demo2(){
		Calendar c=Calendar.getInstance();//日历对象要用工厂方法来创建对象
		//设置和获取日期中的年月日都是通过getter和setter方法
		int year=c.get(Calendar.YEAR);//获得年份
		System.out.println(year);
		System.out.println(Calendar.MONTH);//0一月、1二月
		System.out.println(Calendar.DAY_OF_WEEK);
		System.out.println(Calendar.DAY_OF_WEEK_IN_MONTH);
		c.set(Calendar.YEAR, 2020);//设置年
		c.add(Calendar.HOUR, -4800);//进行加法运算
	}

3)、java.util.DateFormat(其子类是SimpleDateFormat)日期格式化类

用于“日期文本串”和日期对象之间的转换,格式化,得到一个字符串。

@Test
	public void Demo3(){
		//格式化:把Date对象变成字符串
		Date d=new Date();
		DateFormat df=new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
		String str=df.format(d);
		System.out.println(str);
		//解格式:把字符串变成Date对象
		String str2="2018:06:13 20:41:01";
		DateFormat df2=new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
		
		try {
			Date dd=df2.parse(str2);//将str2变成日期对象
			String ss=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(dd);
			System.out.println(ss);
			
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

Calender和Date之间的转换

//Calender转换成Date

Calendar c=Calendar.getInstance();
		Date d=c.getTime();
		System.out.println(d);

//Date转换成Calender

Calendar c2=Calendar.getInstance();
		c2.setTime(new Date());
		System.out.println(c2.get(Calendar.MINUTE)+"分");

猜你喜欢

转载自blog.csdn.net/e286878553/article/details/80684735