java_日期时间(Date , Calendar , SimpleDateFormat,DateFormatUtils工具类)

注意:
1、因为历法改革,Java中的时间类显示不出来1582年10月5日到1582年的10月14日;并且从1582年1月1日到1582年10月4日则有10天偏差。
2、Java时间日期类如果参数不合理不会抛出异常。

java.util.Date类 (特定瞬间,精确到毫秒)

Date d = new Date();//当前的日期时间点(自动转换当前时区,CST代表北京时区)
Date d = new Date(2001,0,12);//2001年1月12日
Date d = new Date(678L);//这个毫秒值(long类型)的日期时间(自动转换当前时区,也可以是负数)
int y = d.getYear();//获取年(结果:122,实际年:1900+122=2022)
int m = d.getMonth();//获取月(结果:0,实际月:1+0 = 1)
int d = d.getDate();//获取日
int w = d.getDay();//获取星期几(周天=0,周一=1)
int h = d.getHours();//获取几点(0-23)
int min = d.getMinutes();//获取几分(0-59)
int s = d.getSeconds();//获取几秒(0-59)
int i = d1.compareTo(d2);//比较两个日期毫秒值
long l = d.getTime();//1970.1.1 00:00:00到当前时间毫秒数。与System.currentTimeMillis()一样
boolean b = d1.before(d2);//之前
boolean b = d1.after(d2);//之后
boolean b = d1.equals(d2);//是否相等
String s = d1.toLocaleString();//转换成当前时间格式字符串(结果 : 2018-1-23 10:15:06)

java.util.Calendar类 (日历)

//Calendar类(子类)对象,(自动转换当前时区,CST代表北京时区)
Calendar cal = Calendar.getInstance();
//获取
int y = cal.get(Calendar.YEAR);//获取年
int m = cal.get(Calendar.MONTH) + 1;//获取月(0-11),实际应用的时候需要加上1
int i = cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取当月最大值(最后一天)
int i = cal.getActualMinimum(Calendar.DAY_OF_MONTH);//获取当月最小值(第一天)
int d = cal.get(Calendar.DAY_OF_MONTH);//方法一:获取日
int d  = cal.get(Calendar.DATE);//方法二:获取日
int w = cal.get(Calendar.DAY_OF_WEEK);//获取星期(1-7,1代表星期天)
int H = cal.get(Calendar.HOUR_OF_DAY);//获取小时(24小时)
int h = cal.get(Calendar.HOUR);//获取小时(12小时)
int min = cal.get(Calendar.MINUTE);//获取分钟
int s = cal.get(Calendar.SECOND);//获取秒
long l = cal.getTimeInMillis();//1970到现在的毫秒值
Date time = cal.getTime();//获取日历时间
//设置
cal.set(Calendar.HOUR_OF_DAY,23);//设置成23点
cal.set(Calendar.DAY_OF_MONTH, 5);//设置5号。
cal.set(2018, 1, 15, 23, 59, 59);//2018-02-15 23:59:59
cal.set(2001,1,2);//设置成2001年2月2日(时分秒没有变化)
//计算
cal.add(Calendar.MONTH,1);//加一个月(注意:如果是一月最后31日,加1个月是二月的最后一天,28号或29号)
cal.add(Calendar.WEEK_OF_MONTH,1);//方法一:当前时间 加1周
cal.add(Calendar.WEEK_OF_YEAR,1);//方法二:当前时间 加1周
cal.add(Calendar.DAY_OF_YEAR,1);//方法一:当前时间 加1天
cal.add(Calendar.DATE,-2);//方法二:当前时间 减2天
cal.add(Calendar.HOUR_OF_DAY, 6);//当前时间加6小时
cal.roll(Calendar.DATE,31);//减31天(注意:roll方法不会跳出当前月,也就是都在最多回到本月1号)
cal.roll(Calendar.MONTH,3);//减3月(注意:roll方法不会跳出当前年,也就是都在最多回到本年1月)
cal.roll(Calendar.YEAR,31);//减去31年,(注意:roll方法减去年,没有限制)
//比较
//格式化
String s = cal.getTime().toLocaleString();//当前时间字符串

java.text.SimpleDateFormat类(格式化和解析)

注意:
yyyy-MM-dd:正常的年月日。
YYYY-MM-dd:星期年,看这个星期属于哪个年,如果星期跨年了,会出现比实际年大一年。

//创建SimpleDateFormat对象 hh:mm:ss:12小时制   HH:mm:ss:24小时制
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(new Date());//格式化(日期->文本)(结果 : 2000-01-23 10:59:57)
Date d = sdf.parse("2020-01-23 10:59:57");//解析(文本->日期)

DateFormatUtils工具类(org.apache.commons.lang3)

org.apache.commons.lang3.time.DateFormatUtils包下的工具类

<!--DateFormatUtils依赖-->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>
// Date类型转String类型
String s = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
// String类型转Date类型
Date d = DateUtils.parseDate("2021-05-01 01:01:01", "yyyy-MM-dd HH:mm:ss");
// 计算一个小时后的日期
Date d = DateUtils.addHours(new Date(), 1);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值