Java常用类-----日期类

Java常用类-----日期类

Java8之前的有Date,Calendar,SimpleDateFormat

Java8之后的有LocalDate、LocalTime、LocalDateTime

1.Date类

Date d=new Date();

long x=d.getTime()//以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数 数据类型为long

2.Calendar类

定义对象格式:Calendar c = Calendar.getInstance();

获取时间的代码如下:

        System.out.println("年: " + c.get(Calendar.YEAR));
		System.out.println("月: " + c.get(Calendar.MONTH));
		System.out.println("日: " + c.get(Calendar.DAY_OF_MONTH)+1);
		System.out.println("时: " + c.get(Calendar.HOUR_OF_DAY));
		System.out.println("分: " + c.get(Calendar.MINUTE));
		System.out.println("秒: " + c.get(Calendar.SECOND));

设置时间:c.set(2021,09,09);

表示某时间之后的某一个日期:

c.add(Calendar.DAY_OF_YEAR, -30);    //某天的30天之前
c.add(Calendar.YEAR, -3);    //3年之前
System.out.println(c2.before(c));      //before表示c2之前的c
System.out.println(c2.before(c));      //after表示c2之后的c

3.SimpleDateFormat用于格式化日期格式

a.将字符串转为日期
public void stringToDate() throws ParseException {
		String str = "2021-11-11 10:10:10";
		SimpleDateFormat sdf=
				new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		
		Date date = sdf.parse(str);
		
		System.out.println(date.getTime());
	}
b.日期转化为字符串
public void dateToString() {
		Date d = new Date();
		long s =d.getTime();
		Date x = new Date(s+330000000L);
		System.out.println(x);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年-MM月-dd日 hh时:mm分:ss秒");
		System.out.println(sdf.format(x));
	}
应用:输入任意一个有效日期,打印是周几?
public void weekday() throws ParseException {
		String str ="2021/05/01";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		Date d = sdf.parse(str);
		
		Calendar c = Calendar.getInstance();
		c.setTime(d);
		int index = c.get(Calendar.DAY_OF_WEEK);
		System.out.println(index);
		//System.out.println(c.get(Calendar.DAY_OF_WEEK));
		String[] weeks= {"","","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
		System.out.println(weeks[index]);
	}

4.LocalDate(java8以后的)

获取当前日期:LocalDate date=LocalDate.now();
获取年月日:
public void test() {
		LocalDate d = LocalDate.now();
		System.out.println(d);
		
		System.out.println("年:" + d.getYear());
		System.out.println("月:" + d.getMonth());
		System.out.println("月:" + d.getMonthValue());
		System.out.println("日:" + d.getDayOfMonth());
		
        LocalDate date2 =LocalDate.parse("2021-09-09");     //设置时间
		
        System.out.println(d.isLeapYear());        //判断闰年
		
		LocalDate x = d.plusDays(23);     //加上23天后的日期
		System.out.println(x);
	}
日期比较:

使用compareTo()返回int类型

使用equals返回布尔类型

LocalDate和Date之间的类型转换

a.Date---->LocalDate
Date d=new Date();
LocalDate dt=d.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();//通过时区转换
System.out.println(dt);
b.LocalDate----->Date
ZoneDateTime zdt =LocalDate.now().atStartOfDay(ZoneId.systemDefault());
Date d =Date.from(zdt.toInstant());
System.out.println(d);

时间计算
在这里插入图片描述
在这里插入图片描述

5.Period类 表示一段时间的年、月、日

在这里插入图片描述
在这里插入图片描述

6.DateTimeFormat和SimpleDateFormat

SimpleDateFormat:线程不安全

DateTimeFormat:线程安全

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值