Date 类
java.util 包提供了 Date 类来封装当前的日期和时间。
import.util.Date
java中的时间使用标准类库的Date类表示,是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。固定时间点叫纪元,是UTC时间 1970年1月1日 00:00:00。
//获取现在时间Datenow=newDate(); System.out.println(now); //获取long值longtime=now.getTime(); System.out.println(time); //明天此时的值time+=1000*60*60*24; //设置了一个long值,使它表示我们设置的值now.setTime(time); System.out.println(now);
SimpleDateFormat
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。
//根据给定的日期格式将String与Date相互转换SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //format() 方法可以将给定的date对象所表示的时间按照给定的日期格式转化成字符串Stringstr=sdf.format(now); System.out.println(str); //Date parse()方法将给定字符串按照给定的日期格式解析为一个date对象Stringstr1="2020-11-11 11:11:11"; SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Datedate=sdf1.parse(str1); System.out.println(date);
日期模式匹配符
Calendar
Calendar,日历类,该类是一个抽象类,封装了对时间的相关操作
常用的实现是格力高里历(阳历)GregorianCalendar类
Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。
//创建一个代表系统当前日期的Calendar对象Calendarc=Calendar.getInstance();//默认是当前日期//创建一个指定日期的Calendar对象//使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。//创建一个代表2022年2月12日的Calendar对象Calendarc1=Calendar.getInstance(); c1.set(2022, 2-1, 12);
//使用静态方法创建实例//该方法根据系统所在地区创建一个相应实现类Calendarc=Calendar.getInstance(); System.out.println(c);//无法直观表示时间// Calendar 提供了方法getTime()返回一个date对象,该对象表示时间就是当前Calendar表示的时间Datedate=c.getTime(); System.out.println(date); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); System.out.println(sdf.format(date)); //表示明天这一时刻date.setTime(date.getTime()+1000*60*60*24); System.out.println(date);
Calender的月份是从0开始的,但日期和年份是从1开始的。
//Calendar 提供针对不同时间分量单独设置值的方法voidset(intfiled,intvalue); //第一个参数为时间值:时间分量 如 年月日,第二个 对应的值c.set(Calendar.YEAR,2021);
获取时间
获取时间intget(intfiled) Calendarc2=Calendar.getInstance(); intyear=c2.get(Calendar.YEAR); intmonth=c2.get(Calendar.MONTH)+1; intday=c2.get(Calendar.DATE); inthour=c2.get(Calendar.HOUR); intmin=c2.get(Calendar.MINUTE); ints=c2.get(Calendar.SECOND); 查看星期几intdow=c2.get(Calendar.DAY_OF_WEEK); System.out.println("周"+(dow==1?"7":dow-1)); String[] data={"日","一","二","三","四","五","六"}; System.out.println("周"+data[dow-1]); 查看今年过了多少天intday1=c2.get(Calendar.DAY_OF_YEAR); System.out.println(year+"已经过"+day1+"天");
getActuakMaximum方法
返回指定日历字段可能拥有的最大值
intday2=c2.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(day2); //2月天数,闰年c2.set(Calendar.MONTH,1); day2=c2.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(day2);
Calendar中计算时间的方法
c2.add(Calendar.YEAR,3); System.out.println(c2.getTime()); c2.add(Calendar.HOUR,-5); System.out.println(c2.getTime());
浅浅了解了一下java中有关日期时间的知识点,如果有啥问题,欢迎大家指出,谢谢大家。