Date类和Calendar类

Date和Calendar

Calendar比Date拥有更加高级的操作, 底层源码比Date更加复杂

Date类

Date

java.uril.Date java提供的日期的工具类, 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理

构造方法

常用无参构造进行创建对象 , 例如: Date date = new Date();

常见方法

对于日期的年月日, 时分秒 进行操作, 其中 带删除线的是已过时

返回值 方法 说明
int getYear() 获取从1900到现在多少年了
int getDate() 获取今天是一个月中的第几天
int getDay() 获取今天是一周中的第几天
int getHours() 获取现在几点了(小时)
int getMinutes() 获取现在是多少分
int getMonth() 获取现在是当前月份-1(源码中月份是从0~11)
int getSeconds() 获现在取多少秒
int getTime() 获取1970年1月1日0点到现在的毫秒值
String toLocaleString() 输出例如: 2020-5-16 11:50:18格式的日期时间

Calendar类 (抽象类)

Calendar

java.util.Calendar Calendar(日历类) 是一个抽象类, 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些.

Calendar对象创建方式

Calendar cal = Calendar.getInstance();

输出cal会得到, 里面包含了好多信息, 比如年月日,时区等

java.util.GregorianCalendar[time=1589690832737,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=4,WEEK_OF_YEAR=21,WEEK_OF_MONTH=4,DAY_OF_MONTH=17,DAY_OF_YEAR=138,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=47,SECOND=12,MILLISECOND=737,ZONE_OFFSET=28800000,DST_OFFSET=0]

常用方法

返回值 方法 说明
int get(int fieId) 参数fieId是Calendar里的静态属性,见fieId 常用的静态属性,
可以获取年, 月, 日等信息
Date getTime() 可以把Calendar转为Date对象
void set(int field, int value)` 设置年月日, 时分秒等值

fieId 常用的静态属性

这些 属性都是静态属性,

属性 说明
YEAR 年, (四位数)
MONTH 月,(0~11), 实际获取的是当前月份-1
DAY_OF_MONTH ,当月的第几天(几号)
DAY_OF_WEEK , 当前周的第几天 (周日为1, 周一为2, 依此类推, 最大为7)
HOUR_OF_DAY , 一天中的第几个小时(最大24)
MINUTE
SECOND
MILLISECOND 毫秒
12个月单词全大写 分别代表12个月份 (0~11)

用法实例:

main方法中代码如下:

Calendar cal = Calendar.getInstance(); // 获取Calendar对象
System.out.println(cal.get(Calendar.YEAR));// 年
System.out.println(cal.get(Calendar.MONTH));// 月(当前月份-1)
System.out.println(cal.get(Calendar.DAY_OF_MONTH));// 日
System.out.println(cal.get(Calendar.DAY_OF_WEEK)); // 周
System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 时
System.out.println(cal.get(Calendar.MINUTE)); // 分
System.out.println(cal.get(Calendar.SECOND)); // 秒
System.out.println(cal.get(Calendar.MILLISECOND)); // 毫秒

cal.set(Calendar.YEAR, 2018);// 设置年
cal.set(Calendar.MONTH, Calendar.FEBRUARY); // 设置月
cal.set(Calendar.DAY_OF_MONTH, 15); // 设置日
cal.set(Calendar.HOUR_OF_DAY, 23); // 设置小时
cal.set(Calendar.MINUTE, 59); // 设置分
cal.set(Calendar.SECOND, 59); // 设置秒
System.out.println(cal.getTime()); // 转为Date类型显示

posted on 2020-05-17 14:34  liqiangbk  阅读(146)  评论(0编辑  收藏  举报

导航