SimpleDataFormt和Calendar

SimpleDateFormat类

Date类的日期时间格式太丑了,可以使用SimpleDateFormat对象Date对象进行格式化和解析的操作。

它可以对Date对象进行格式化解析的操作(ps: 耐心往下看有具体解释).

常用日期格式

yyyy 	年
MM		月
dd		日
HH		时(24小时)
mm		分
ss		秒
SS		毫秒

日期格式化

所谓格式化就是把Date对象转换为想要的字符串格式(如:2018年6月19日)

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date=new Date();//当前时间对象
String str=sdf.format(date);//把当前时间的Date对象转换为字符串
System.out.println(str);//2018-6-19 18:34

日期解析

所谓解析就是把具有日期格式的字符串转换为Date对象

String str="1991年8月20日";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd");
//把上面的字符串转换为Date对象
Date date=sdf.parse(str);

//计算1991年8月20日距今有多少天
long between=new Date().getTime()-date.getTime(); //现在的毫秒值-1991年8月20日的毫秒值
//把时间间隔转换为天,并输出
System.out.println((between/1000/60/60/24)+"天");

Calendar类

Calendar表示日历类,可以很方便的对日历字段(年、月、日、时、分、秒等)可进行获取、修改,计算等操作。

Calendar是一个抽象类,不能直接创建对象,但是有一个方法可以获取对象

//获取Calendar对象,表示当前日历的时间
Calendar c=Calendar.getInstance();

在操作年,月,日等字段的时候要用一个特定的常量进行区分

Calendar常用日历字段

Calendar.YEAR	年
Calendar.MONTH	月
Calendar.DAY_OF_MONTH 月中的天(ps:0表示1)
Calendar.DAY_OF_YEAR  年中的天
Calendar.DAY_OF_WEEK  星期中某一天(ps:1代表星期日)

Calendar的修改时间

//获取Calendar对象,表示当前日历的时间
Calendar c=Calendar.getInstance();
//设置 年,2020年
c.set(Calendar.YEAR,2020);
//设置 月,3月(ps:0表示1月,1表示2月,2表示3月...这是规定别多想)
c.set(Calendar.MONTH,2);
//设置月中的天,18日
c.set(Calendar.DAY_OF_MONTH,18);

//还可以年,月,日一起设置
c.set(2020,2,18);//设置日历时间为 2020年3月18日

Calendar计算时间方法

//获取Calendar对象,表示当前日历的时间
Calendar c=Calendar.getInstance();
//设置时间2018年6月19日
c.set(2018,5,19);
c.add(Calendar.YEAR,1);//把年字段往后+1,变为2019年
c.add(Calendar.DAY_OF_MONTH,-2);//把月中的日往前-2,变为17日

Calendar的获取时间方法

//获取Calendar对象,表示当前日历的时间
Calendar c=Calendar.getInstance();
//设置时间2018年6月19日
c.set(2018,5,19);
c.add(Calendar.YEAR,1);//把年字段往后+1,变为2019年
c.add(Calendar.DAY_OF_MONTH,-2);//把月中的日往前-2,变为17日

//获取日历中“年”的字段值
int year=c.get(Calendar.YEAR);
//获取日历中“月”的字段值
int month=c.get(Calendar.MONTH)+1;
//获取日历中“月中的天”字段值
int dayOfMonth=c.get(Calendar.DAY_OF_MONTH);
//获取日历中“年中的天”字段值
int dayOfYear=c.get(Calendar.DAY_OF_YEAR);
//获取日历中“星期中的天”字段值
int index=c.get(Calendar.DAY_OF_WEEK);
//第一个元素"",是为了把"星期日"顶到后面去,让他对应1索引...
String[]  weeks={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}
//打印输出来看一下
System.out.println(year+"年"+month+"月"+dayOfMonth+"日 是一年中的"+dayOfYear+"天");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值