JavaSE_Date

1.Date类,DateFormat抽象类,Calender类!

  • Date类为日期类,描述时间对象。
  • DateFormat抽象类为日期格式化类,可以将日期格式化成为字符串。
DateFormat simple = new SimpleDateFormat();

(1)String format(Date date);将日期对象转化为字符串。
(2)Date parse(String source);将字符串转化为日期对象。

  • Calender类为日历类,可以获取日期的年份,月份,周,等等。。。
		//	"当前日期"后10天是:<注意这里不是使用单例设计模式>
		Calendar calendar = Calendar.getInstance();
		calendar.add(Calendar.DATE, 10);
		System.out.println(calendar.getTime());
		//	当前日期10年后
		calendar = Calendar.getInstance();
		calendar.add(Calendar.YEAR, 10);
		System.out.println(calendar.getTime());
		//	设置日期为1998年8月16
		calendar.set(1998, 8, 16);
		System.out.println(calendar.getTime());
		//	获取年份,月份,日期,周
		calendar = Calendar.getInstance();
		System.out.println("年份" + calendar.get(Calendar.YEAR));
		System.out.println("月份" + (calendar.get(Calendar.MONTH)+1));
		System.out.println("日期" + calendar.get(Calendar.DATE));
		System.out.println("周" + (calendar.get(Calendar.DAY_OF_WEEK)-1));
		//	获取最大值
		System.out.println("这一年有:"+calendar.getMaximum(Calendar.DAY_OF_YEAR)+"天");
		System.out.println("这一月有:"+calendar.getMaximum(Calendar.DAY_OF_MONTH)+"天");

2.LocalDate类,LocalTime类,LocalDateTime类,ZonedDateTime类,ZoneId类。

  • LocalDate类为日期类,只包含年,月,日。
  • LocalTime类为时间类,只包含小时,分钟,秒。
  • LocalDateTime类既包含日期也包含时间,所以包含年,月,日,小时,分钟,秒,毫秒。
  • ZonedDateTime类在LocalDateTime类的基础上还包含了时区。
  • Zoneld类包含了全球的时区信息。
 		//	 获取当前时间
		LocalDate now = LocalDate.now();
		//	获取各个时间
		System.out.println("年份:" + now.getYear());
		System.out.println("月份:" + now.getMonth());//月份名称
		System.out.println("月份:" + now.getMonthValue());//获取月份值
		System.out.println("日期:" + now.getDayOfMonth());
		System.out.println("星期:" + now.getDayOfWeek());//获取星期名称
		//获取星期值1~7  1代表星期一,2代表星期二,7代表星期天
		System.out.println("星期:" + now.getDayOfWeek().getValue());
		System.out.println("当前年的第" + now.getDayOfYear() + "天。");
		
		//	N年前与N年后
		System.out.println(now + "的三年前:" + now.minusYears(3));
		System.out.println(now + "的三年后:" + now.plusYears(3));
		//	N月前与N月后
		System.out.println(now + "的三个月前:" + now.minusMonths(3));
		System.out.println(now + "的三个月后:" + now.plusMonths(3));
		//	N天前与N天后
		System.out.println(now + "的三天前:" + now.minusDays(3));
		System.out.println(now + "的三天后:" + now.plusDays(3));
		//	N周前与N周后
		System.out.println(now + "的三个星期前:" + now.minusWeeks(3));
		System.out.println(now + "的三个星期后:" + now.plusWeeks(3));
		
		//	判断闰年
		System.out.println(now.getYear()+"年是否为闰年?" + now.isLeapYear());
		
		//	重新设置年,月,日,一年中的第几天
		LocalDate date1 = now.withYear(2006);
		System.out.println(date1);
		LocalDate date2 = now.withMonth(6);
		System.out.println(date2);
		LocalDate date3 = now.withDayOfMonth(6);
		System.out.println(date3);
		LocalDate date4 = now.withDayOfYear(3);
		System.out.println(date4);
		
		//	获取当前月份的第一天与最后一天
		LocalDate date5 = now.with(TemporalAdjusters.firstDayOfMonth());
		System.out.println(date5);
		LocalDate date6 = now.with(TemporalAdjusters.lastDayOfMonth());
		System.out.println(date6);
		//	获取该月的第N个星期x
		//	第一个星期天
		LocalDate date7 = now.with(TemporalAdjusters.dayOfWeekInMonth(1, DayOfWeek.SUNDAY));
		System.out.println(date7);
		
		//	获取本周的星期天
		LocalDate date8 = now.with(DayOfWeek.SUNDAY);
		System.out.println(date8);
		
		//	距离当前日期一月零三天是
		System.out.println(LocalDate.now().plusMonths(1).plusDays(3));
		//	计算当月第十天的日期
		System.out.println(LocalDate.now().withDayOfMonth(10));
		//	计算当年第93天
		System.out.println(LocalDate.now().withDayOfYear(93));

3.Date类和ZonedDateTime类之间的转换。

		//旧的转新的	Date类转ZonedDateTime类
		Date oldDate = new Date();
		Instant instant = oldDate.toInstant();
		ZonedDateTime newDate = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
		System.out.println("旧版:"+ oldDate);
		System.out.println("新版:"+ newDate);
		//新的转旧的	ZonedDateTime类转Date类
		ZonedDateTime newTime = ZonedDateTime.now();
		//获取秒 然后乘以1000则为毫秒。newTime.toInstant().toEpochMilli();(获取准确的毫秒。)
		Date oldTime = new Date(newTime.toEpochSecond()*1000);
		System.out.println("旧版:"+ oldTime);
		System.out.println("新版:"+ newTime);

4.ChronoUnit

一组标准的日期时间单位。这组单元提供基于单元的访问来操纵日期,时间或日期时间。
例:计算两个时间差。

//两个LocalDate对象
LocalDate local1 = LocalDate.of(2020, 3, 1);
LocalDate local2 = LocalDate.of(2020, 4, 1);
//两个时间相隔多少年
ChronoUnit.YEARS.between(local1, local2);
//两个时间相隔多少周
ChronoUnit.WEEKS.between(local1, local2);
//两个时间相隔多少天
ChronoUnit.DAYS.between(local1, local2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值