Java时间类的的分析与使用

Calendar类的使用



		System.out.println("------------Calendar无参构造------------");
		// Calendar对象,不传参数,默认为当前日期
		Calendar calendar = new GregorianCalendar();
		// 获取当前年份
		System.out.println("年份:"+calendar.get(Calendar.YEAR));
		// 获取当前月份 从0开始,0代表一月,1代表二月,以此类推
		System.out.println("月份:"+calendar.get(Calendar.MONTH));
		// 获取当前日期 也可以使用DAY_OF_MONTH
		System.out.println("日期::"+calendar.get(Calendar.DATE));
		// 获取当前时 24小时进制
		System.out.println("小时:"+calendar.get(Calendar.HOUR_OF_DAY));
		// 获取当前分
		System.out.println("分钟:"+calendar.get(Calendar.MINUTE));
		// 获取当前秒
		System.out.println("秒:"+calendar.get(Calendar.SECOND));

		// 获取今天是这个月的第几个星期
		System.out.println("这个月的第几个星期:"+calendar.get(Calendar.WEEK_OF_MONTH));
		// 获取今天是星期几 1表示星期天,2表示星期一,以此类推
		System.out.println("今天是星期几"+calendar.get(Calendar.DAY_OF_WEEK));

		System.out.println("------------Calendar有参构造------------");
		/**
		 * 有参构造 分别代表年月日时分秒,写法简单明了,很符合我们人类的思维 注意月份的设置是从0开始的,这里设置的是月份是6,实际是设置了7月份
		 */
		calendar = new GregorianCalendar(2019, 6, 14, 16, 15, 30);
		/**
		 * 除了在构造方法直接设置之外,也可以通过set方法设置 第一个参数表示设置的参数类型,第二个表示具体值
		 */
		calendar.set(Calendar.YEAR, 2000);
		calendar.set(Calendar.MONTH, 0);
		calendar.set(Calendar.DATE, 20);
		// ...

		System.out.println("------------Calendar和Date转换------------");
		Date now = (Date) calendar.getTime();
		System.out.println("now:" + now);
		calendar.setTime(now);
		System.out.println("calendar:" + calendar);

		System.out.println("------------Calendar日期计算以及判断------------");
		calendar = new GregorianCalendar();
		Calendar calendar2 = new GregorianCalendar();
		calendar2.set(Calendar.YEAR, 2800);
		// 是否在某个时间(calendar2)之后
		System.out.println("是否在某个时间(2800)之后"+calendar.after(calendar2));
		// 是否在某个时间(calendar2)之前
		System.out.println("是否在某个时间(2800)之前"+calendar.before(calendar2));
		// 增加多少年年,月日以及时分秒同理
		calendar.add(Calendar.YEAR, -10);
	

具体结果:
在这里插入图片描述

格式化日期

利用java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化。

1. SimpleDateFormat 介绍

SimpleDateFormat 是一个格式化Date 以及 解析日期字符串 的工具。它的最常用途是,能够按照指定的格式来对Date进行格式化,然后我们使用可以格式化Date后得到的字符串。
更严格的说,SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

2、SimpleDateFormat 相关格式说明

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear1996;96与大写无区别
M年中的月份MonthJuly;Jul;07与小写有区别
W年中的周数Number27与小写有区别
w月份中的周数Number2与大写有区别
D年中的天数Number189与小写有区别
d月份中的天数Number2与大写有区别
F月份中的星期Number2
E星期中的天数Text2
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0与小写有区别
k一天中的小时数(1-24)Number24与大写有区别
Kam/pm 中的小时数(0-11)Number0与小写有区别
ham/pm 中的小时数(0-11)Number0与小写有区别
m小时中的分钟数Number30与大写有区别
s分钟中的秒数Number55与大写有区别
S毫秒数Number978与小写有区别
z时区General time zonePacific Standard Time; PST; GMT-08:00与小写有区别
S时区RFC 822 time zone-0800与小写有区别

具体代码演示:

		SimpleDateFormat aDate = new SimpleDateFormat("yyyy-mm-dd  HH:mm:ss");
		SimpleDateFormat bDate = new SimpleDateFormat("yyyy-mmmmmm-dddddd");
		long now = System.currentTimeMillis();
		System.out.println(aDate.format(now));
		System.out.println(bDate.format(now));

		SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
		SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm");
		SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 等价于now.toLocaleString()
		SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
		SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
		System.out.println(myFmt.format(now));
		System.out.println(myFmt1.format(now));
		System.out.println(myFmt2.format(now));
		System.out.println(myFmt3.format(now));
		System.out.println(myFmt4.format(now));

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值