java8中日期月份加1_java8新日期类常用操作

1.获取当前日期

@Test

public void demo1(){

//获取当前年月日

LocalDate today = LocalDate.now();

System.out.println("当前的日期年月日:" + today);

//获取当前年月日时分秒

LocalDateTime localDateTime = LocalDateTime.now();

System.out.println("当前年月日时分秒:" + localDateTime);

//获取当前年月

YearMonth yearMonth = YearMonth.now();

System.out.println("当前的日期年月:" + yearMonth);

//获取当前月日

MonthDay monthDay = MonthDay.now();

System.out.println("当前的日期月日:" + monthDay);

}

2.指定年月日获取LocalDate日期或指定年月日时分秒获取

@Test

public void demo2(){

//指定的年月日获取日期

LocalDate date = LocalDate.of(2021,1,8);

System.out.println("指定日期:"+date);

//指定的年月日时分秒获取日期

LocalDateTime localDateTime = LocalDateTime.of(2021, 1, 1, 12, 1, 1);

System.out.println("指定时分秒日期:" + localDateTime);

}

3.获取年,月,日

@Test

public void demo3(){

//获取LocalDate的年月日

LocalDate today = LocalDate.now();

int year = today.getYear();

int month = today.getMonthValue();

int day = today.getDayOfMonth();

System.out.println("年:"+year);

System.out.println("月:"+month);

System.out.println("日:"+day);

}

4.对比日期的月日

@Test

public void demo4(){

//对比日期的月日

LocalDate dateNow = LocalDate.now();

LocalDate date = LocalDate.of(2020,1,6);

MonthDay monthDay = MonthDay.of(date.getMonth(),date.getDayOfMonth());

MonthDay currentMonthDay = MonthDay.from(dateNow);

if(currentMonthDay.equals(monthDay)){

System.out.println("到了出发日期");

}else{

System.out.println("出发日期还没有到");

}

}

5.日期运算以加法为例,减法同加法

@Test

public void demo5(){

//日期运算以加法为例,减法同加法

LocalDateTime localDateTime = LocalDateTime.now();

System.out.println("当前时间:" + localDateTime);

LocalDateTime plusDay = localDateTime.plusDays(1);

System.out.println("当前日期一天后的日期:" + plusDay);

LocalDateTime plusMonth = localDateTime.plusMonths(1);

System.out.println("当前日期一个月后的日期:" + plusMonth);

LocalDateTime plusYear = localDateTime.plusYears(1);

System.out.println("当前日期一年后的日期:" + plusYear);

//Period操作天以上的时间单位

LocalDateTime plusY = localDateTime.plus(Period.ofYears(1));

System.out.println("Period操作当前日期一年后的日期:" + plusY);

//Duration操作天以下的时间单位

LocalDateTime plusH = localDateTime.plus(Duration.ofHours(1));

System.out.println("Duration操作当前日期一个小时后的日期:" + plusH);

//ChronoUnit指定运算数和时间单位

LocalDateTime plusW = localDateTime.plus(1, ChronoUnit.WEEKS);

System.out.println("ChronoUnit操作当前日期一周后的日期:" + plusW);

}

6.Clock时钟类用于获取当时的时间戳,或当前时区下的日期时间信息

System.currentTimeInMillis()和TimeZone.getDefault()的地方都可用Clock替换。

@Test

public void demo6(){

//Clock时钟类用于获取当时的时间戳,或当前时区下的日期时间信息

//System.currentTimeInMillis()和TimeZone.getDefault()的地方都可用Clock替换。

Clock defaultClock = Clock.systemDefaultZone();

System.out.println("Clock : " + defaultClock.millis());

Clock clock = Clock.systemUTC();

System.out.println("Clock : " + clock.millis());

}

7.LocalDate类有两类方法isBefore()和isAfter()用于比较日期。

调用isBefore()方法时,如果给定日期小于当前日期则返回true。

@Test

public void demo7(){

//LocalDate类有两类方法isBefore()和isAfter()用于比较日期。调用isBefore()方法时,如果给定日期小于当前日期则返回true。

LocalDate today = LocalDate.now();

LocalDate beDay = LocalDate.of(2020,1,6);

LocalDate afDay = LocalDate.now().plusDays(1);

if(afDay.isAfter(today)){

System.out.println("之后的日期:"+afDay);

}

if(beDay.isBefore(today)){

System.out.println("之前的日期:"+beDay);

}

}

8. ZoneId来处理特定时区,ZoneDateTime类来表示某时区下的时间。这在Java 8以前都是 GregorianCalendar类来做的

@Test

public void demo8(){

//ZoneId来处理特定时区,ZoneDateTime类来表示某时区下的时间。这在Java 8以前都是 GregorianCalendar类来做的

ZoneId america = ZoneId.of("America/New_York");

LocalDateTime localDateTime = LocalDateTime.now();

ZonedDateTime newYorkDay = ZonedDateTime.of(localDateTime, america );

System.out.println("转化为纽约时区:" + newYorkDay);

}

9.  时间戳信息里同时包含了日期和时间,这和java.util.Date很像。

实际上Instant类确实等同于 Java 8之前的Date类,你可以使用Date类和Instant类各自的转换方法互相转换,

例如:Date.from(Instant) 将Instant转换成java.util.Date,Date.toInstant()则是将Date类转换成Instant类。

@Test

public void demo9(){

Instant timestamp = Instant.now();

System.out.println("What is value of this instant " + timestamp.toEpochMilli());

}

10. 日期字符串互转

@Test

public void demo10(){

//日期字符串互转

LocalDateTime date = LocalDateTime.now();

DateTimeFormatter format1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

//日期转字符串

String str = date.format(format1);

System.out.println("日期转换为字符串:"+str);

DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

//字符串转日期

LocalDateTime date2 = LocalDateTime.parse(str,format2);

System.out.println("字符串转日期:"+date2);

}

11.计算两个日期之间的年数,月数,周数,天数

@Test

public void demo11(){

//计算两个日期之间的年数,月数,周数,天数

LocalDate localDate = LocalDate.now();

LocalDate date = LocalDate.of(2019, 1, 1);

LocalDateTime localDateTime = LocalDateTime.now();

LocalDateTime dateTime = LocalDateTime.of(2019, 1, 1,1,1,1);

//ChronoUnit计算(推荐使用)

long diffChrono = ChronoUnit.DAYS.between(date, localDate);

System.out.println("ChronoUnit计算相差天数" + diffChrono);

//Period处理getDays方法只对比天,忽略年月不是根据年月转化

Period diff = Period.between(date,localDate);

System.out.println("Period相差天:" + diff.getDays());

System.out.println("根据日期转化的相差月:" + diff.toTotalMonths());

//Duration处理getDays方法只对比天,忽略年月不是根据年月转化,to方法是根据日期转化后计算的

Duration between = Duration.between(dateTime, localDateTime);

System.out.println("Duration相差天:" + between.toDays());

}

12.判断是否闰年

@Test

public void demo12(){

//是否闰年

LocalDate today = LocalDate.of(2021,1,1);

LocalDate leapYear = LocalDate.of(2000,1,1);

if(today.isLeapYear()){

System.out.println("2021年是闰年");

}else {

System.out.println("2021年不是闰年");

}

if(leapYear.isLeapYear()){

System.out.println("2000年是闰年");

}else {

System.out.println("2000年不是闰年");

}

}

标签:常用,System,日期,LocalDateTime,println,LocalDate,java8,out

来源: https://blog.csdn.net/baidu_41632451/article/details/112490152

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值