SimpleDataFormt和Calendar
程序员文章站
2022-05-16 21:26:34
...
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+"天");
上一篇: API学习Calendar
下一篇: 树10--对称的二叉树