JAVA8 LocalDateTime学习

JAVA8 LocalDateTime学习

LocalDate

默认格式 yyyy-mm-dd

用来获取和处理日期相关信息

  • 获取当前时间
LocalDate date = LocalDate.now();
  • 获取日期相关属性
// 获取年:
date.getYear();
获取月:
date.getMonth(); //AUGUST。就是当前月份不需要再计算直接使用。
date.getMonthValue()//8
获取日期:
//获取日期再这个月中的第几天,常用来表示几日。25
date.getDayOfMonth();
//默认英文WEDNESDAY,获取周几。
date.getDayOfWeek();
//数值3 获取周几。
date.getDayOfWeek().getValue();
//星期三 可根据TextStyle的类型以及Locale设定的语言返回特定的星期格式。
date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.SIMPLIFIED_CHINESE); 
//237 获取当前日期在当前年份中的第几天。`
date.getDayOfYear();
获取年
date.getYear();
  • 方法
//1970-01-01至今的天数
date.toEpochDay();
// 增加天数  增加一天负数为减
date.plusDays(1)
// 根据单位增加或者减少日期。增加1年
date.plus(1,ChronoUnit.YEARS)
// 某日0时 2021-08-25T00:00
date.atStartOfDay();
// 判断是否为闰年
date.isLeapYear();
// with 相关方法功能简单不挨个举例
//替换当前时间年为1900 结果 1900-08-25
date.withYear(1900)
// 日期比较 大于>0 等于=0 小于<0
date.compareTo(LocalDate.parse("2021-08-27");

LocalTime

默认格式 HH:mm:ss.SSSZ

  • 获取当前时间
LocalTime time = LocalTime.now();
  • 获取时间属性
System.out.println(time);
//输出 11:21:58.092166
//获取小时
System.out.println(time.getHour());
//输出 11
//获取分钟
System.out.println(time.getMinute());
//输出 25
//获取秒种
System.out.println(time.getSecond());
//输出 5
//获取纳秒
System.out.println(time.getNano());
//输出 577452000 可以自己计算毫秒
  • 方法
    方法与日期基本相同,只是单位不同。

LocalDateTime

默认格式 yyyy-MM-dd’T’HH:mm:ss.SSSZ
支持LocalDate,LocalTime所有时间属性

  • 获取当前日期时间
LocalDateTime localDateTime = LocalDateTime.now();
String month = localDateTime.toString("yyyyMM");

输出:202203

计算时间区间

  1. Period
public static void main(String[] args) {
    LocalDate today = LocalDate.now();
    System.out.println("Today : " + today);
    LocalDate birthDate = LocalDate.of(1984, Month.of(11), 26);
    System.out.println("BirthDate : " + birthDate);

    Period p = Period.between(birthDate, today);
    System.out.printf("年龄 : %d 年 %d 月 %d 日", p.getYears(), p.getMonths(), p.getDays());
}
/**
输出
Today : 2021-08-25
BirthDate : 1984-11-26
年龄 : 36 年 8 月 30 日
*
  1. Duration
public static void main(String[] args) {
	Instant inst1 = Instant.now();
    System.out.println("Inst1 : " + inst1);
    Instant inst2 = inst1.plus(Duration.ofDays(10));
    System.out.println("Inst2 : " + inst2);
    System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toDays());
    System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).toHours());
}
/**
Inst1 : 2021-08-25T06:36:14.593355Z
Inst2 : 2021-09-04T06:36:14.593355Z
Difference in milliseconds : 10
Difference in seconds : 240
*/
  1. ChronoUnit
    ChronoUnit用来计算给定单位的时间差 秒,分,天等。
//计算两个时间相差多少秒 单位根据ChronoUnit.SECONDS来定
Instant inst1 = Instant.now();
Instant inst2 = inst1.plus(Duration.ofDays(10));
System.out.println(ChronoUnit.SECONDS.between(inst1, inst2));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值