日期类常用方法

Date类

Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代。

Date类中的构造方法:

方法名描述
Date()分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date)分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

Date类中常用普通方法:

Date date1 = new Date();//获取当前系统时间
Date date2 = new Date(10000);//获取从标准基准时间起10000毫秒的时间点
boolean boo1 = date1.after(date2);//若date1在date2之后,则返回true,否则返回false
boolean boo2 = date1.before(date2);//若date1在date2之前,则返回true,否则返回false

//比较两个日期对象
Date date1 = new Date();
Date date2 = new Date(10000);
int i = date1.compareTo(date2);

//获取时间毫秒值
Date date = new Date();
long l = date.getTime();

//修改时间
Date date = new Date();
date.setTime(1000);

Calendar类

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR
等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

Calendar类时抽象类不能创建对象,可以通过Calendar类中的静态getInstance方法获取对象(一个非抽象子类对象)。

Calendar类中的常用静态常量属性:

属性描述(这些都是特定与日历的值)
public static final int YEAR指示年的字段数字
public static final int MONTH指示月份的字段数字 ,月份从0开始计算
public static final int DATE指示一个月中的某天
public static final int DAY_OF_MONTH指示一个月中的某天
public static final int DAY_OF_WEEK指示一周中的某天
public static final int DAY_OF_WEEK_IN_MONTH指示当月中的第几个星期
public static final int DAY_OF_YEAR指示一年中的某天

常用方法

//获取具体时间字段
calendar.set(Calendar.YEAR, 2020); //甚至年份为2020
int year = calendar.get(Calendar.YEAR);	//获取年
int month = calendar.get(Calendar.MONTH) + 1;//获取月份,从0计数,所以加1
calendar.set(Calendar.MONTH, 1); //设置月份
int date1 = calendar.get(Calendar.DAY_OF_MONTH); //获取月份中的某天
int hour = calendar.get(Calendar.HOUR_OF_DAY); //获取小时
int minutes = calendar.get(Calendar.MINUTE); //获取分钟
int seconds = calendar.get(Calendar.SECOND); //获取秒
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); // 获取东八区时间

//获取和设置时间,以下方法返回值都是void,说明这意味着当前Calendar的对象是可变的
//表示当前时间,输出结果为:Sat Feb 22 21:32:31 CST 2020
calendar.getTime();
//获取当前时间毫秒值
calendar.getTimeInMillis();
//给当前时间加一个月或减去一个月
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.MONTH, -1);
//获取当下日期是星期几,周日为1,周六为7
calendar.get(Calendar.DAY_OF_WEEK);
//设置年份、月份和date
calendar.set(Calendar.YEAR, 2020);
calendar.set(Calendar.MONTH, 1);
calendar.set(Date date);

//返回日历字段最大值和最小值,以31最大
System.out.println(calendar.getMinimum(Calendar.DATE));
System.out.println(calendar.getMaximum(Calendar.DATE));
//返回实际最大值和最小值,以当前月份为基准,2月在平年最大28【常用】
System.out.println(calendar.getActualMaximum(Calendar.DATE));
System.out.println(calendar.getActualMinimum(Calendar.DATE));

//按照yyyy-MM-dd HH:mm:ss格式输出
calendar.getTime().toLocaleString()

日期格式化类

//获取毫秒值,并传给Date
Date date = new Date(Calendar.getInstance().getTimeInMillis());
//设置格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//传入毫秒值,格式化
String format = dateFormat.format(date);
//反向解析,按照设定的格式对字符串解析为date
Date parse = dateFormat.parse("2020年12月31日 20:22:45");

日期参照格式表
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值