java中的时间Date类和日期Calendar类

时间类Date

在java中,返回的时间是以起始时间:1970年00:00:00,开始计算的,以毫秒为单位。
Date d=new Date();//返回当前的时间;
但是在java中,Date时间类,很多的方法已经被废弃。基本不再使用了。
现在基本都是使用Calendar类。

日期Calendar类

在Calendar类中的时间格式化类:SimpleDateFormat是继承DateFormat

时间格式化字符的含义
yyyy:年

MM:月

dd:日

hh:1~12小时制(1-12)

HH:24小时制(0-23)

mm:分

ss:秒

S:毫秒

E:星期几

D:一年中的第几天

F:一月中的第几个星期(会把这个月总共过的天数除以7)

w:一年中的第几个星期

W:一月中的第几星期(会根据实际情况来算)

a:上下午标识

k:和HH差不多,表示一天24小时制(1-24)。

K:和hh差不多,表示一天12小时制(0-11)。

z:表示时区

日期不同格式的转换

public class TimeTest {

	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub
		//把时间对象按照“格式字符串指定的格式”转成相应的字符串
		Date  d=new Date();
		DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//SimpleDateFormat是继承了DateFormat
		System.out.println(df.format(d));
		
		
		//把字符串按照“格式字符串指定的格式”转成相应的时间对象
		DateFormat df2=new SimpleDateFormat("yyyy年MM月dd日hh小时mm分ss秒");
		Date date=df2.parse("1998年08月15日17小时30分20秒");
		System.out.println(date);
		
		//其他格式字符的测试
		DateFormat df3=new SimpleDateFormat("D");//表示的是每一年中的第多少天
		String s1=df3.format(d);
		System.out.println(s1);
	}

}

在日历类中还提供了关于日期计算的相关功能

GregorianCalendar类是Calendar的一个子类,提供了世界上大多数国家、地区使用的标准日历系统。

关于GregorianCalendar类中一些方法的测试

public class TimeTest {

	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub
		//创建日期类
		Calendar c=new GregorianCalendar(2020,10,9,22,10,50);
		
		
		//获得日期的相关元素
		int year=c.get(Calendar.YEAR);//
		int m=c.get(Calendar.MONDAY);//0-11表示的十二个月
		int week=c.get(Calendar.DAY_OF_WEEK);//1-7:1.sun.2.mon
		int day=c.get(Calendar.DATE);//或者DAY_OF_MONTH;
		System.out.println(c);//时间内容
		System.out.println(year+" "+m+" "+week+" "+day);
		
		//设置日期的相关日期
		Calendar c1=new GregorianCalendar();
		c1.set(Calendar.YEAR,1998);
		System.out.println(c1);
		
		//日期的计算
		Calendar c2=new GregorianCalendar();
		c2.add(Calendar.DATE, 100);//往后100天。往前100天用-100;
		System.out.println(c2);
		
		
		//日期对象和时间对象的转换
		Date d4=c2.getTime();
		System.out.println(d4);
		Calendar c3=new GregorianCalendar();
		c3.setTime(new Date());
		printCalendar(c3);
		
		
	}
	
	
	//在上面打印日期类的时候有很多信息是我们不想看到的,
	//因此我们封装一个方法,打印出我们所需要的信息。
	
	public static void printCalendar(Calendar c) {
		//打印的格式:0000年00月00日 00:00:00 周三
		int year=c.get(Calendar.YEAR);
		int m=c.get(Calendar.MONDAY)+1;
		int week=c.get(Calendar.DAY_OF_WEEK)-1;
		String s= week==0?"日":week+"";//将星期转化为我们熟悉的格式
		int day=c.get(Calendar.DATE);
		int h=c.get(Calendar.HOUR);
		int mi=c.get(Calendar.MINUTE);
		int se=c.get(Calendar.SECOND);
		System.out.println(year+"年"+m+"月"+day+"日 "+h+":"+mi+":"+se+" 周"+s);
		
	}

}

发布了43 篇原创文章 · 获赞 11 · 访问量 2586

猜你喜欢

转载自blog.csdn.net/weixin_43328816/article/details/104242353