Java LocalDate LocalDateTime LocalTime学习

在Java8之前处理时间类都是Date、Calendar,关于这两个类我并没有学习过,只是听说用起来很复杂。Java8之后推出了LocalDate、LocalDateTime、LocalTime三个工具类,更好的处理时间。

LocalDate对应年月日
LocalDateTime对应年月日时分秒
LocalTime对应时分秒及纳秒

获取当地时间

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalTest {
    public static void main(String[] args) {
        //通过三个时间类的now方法获取当地时间
        LocalDate now=LocalDate.now();
        LocalDateTime now2=LocalDateTime.now();
        LocalTime now3=LocalTime.now();

        System.out.println(now);
        System.out.println(now2);
        System.out.println(now3);

    }
}
//输出结果
//2021-05-17
//2021-05-17T00:54:01.394389
//00:54:01.394716

关于LocalDateTime时间中间有个T的解释

国际标准化组织的国际标准,日期和时间的组合表示法编辑,合并表示时,要在时间前面加一大写字母T

自定义时间

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalTest {
    public static void main(String[] args) {
        LocalDate time=LocalDate.of(2021,1,1);
        LocalTime time2=LocalTime.of(1,1,1);
        LocalDateTime time3=LocalDateTime.of(2021,1,1,1,1,1);
        LocalDateTime time4=LocalDateTime.of(time,time2);

        System.out.println(time);
        System.out.println(time2);
        System.out.println(time3);
        System.out.println(time4);

    }
}
//输出结果
//2021-01-01
//01:01:01
//2021-01-01T01:01:01
//2021-01-01T01:01:01

LocalTime使用of新建对象有三种参数形式,时分、分秒
、时分秒纳秒
LocalDateTime使用of新建对象时有四种参数形式,年月日时分、年月日时分秒、年月日时分秒纳秒、还有一种特殊形式

LocalDateTime lt=LocalDateTime.of(LocalDate date,LocalTime time )
//两个参数分别是LocalDate对象和LocalTime对象

获取时间具体的值

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalTest {
    public static void main(String[] args) {
        LocalDate time=LocalDate.now();
        LocalTime time2=LocalTime.now();
        LocalDateTime time3=LocalDateTime.now();

        //得到年
        int year=time.getYear();
        //得到月,有两种表示方式
        int month=time.getMonth().getValue();
        int month2=time.getMonthValue();
        //得到日期
        int day=time.getDayOfMonth();
        //得到星期几
        int date=time.getDayOfWeek().getValue();
        //得到小时
        int hour=time2.getHour();
        //得到分钟
        int minute=time2.getMinute();
        //得到秒
        int second=time2.getSecond();
        //得到纳秒
        int nano=time2.getNano();

        System.out.println(time3);
        System.out.println(year+"年");
        System.out.println(month+"月");
        System.out.println(month2+"月");
        System.out.println(day+"日");
        System.out.println("星期"+date);
        System.out.println(hour+"时");
        System.out.println(minute+"分");
        System.out.println(second+"秒");
        System.out.println(nano+"纳秒");
    }
}
//输出结果
//2021-05-17T14:06:57.719849
//2021年
//5月
//5月
//17日
//星期1
//14时
//6分
//57秒
//719733000纳秒

得到月份有两种表示方式,得到星期几还要加个getValue,其他的都比较好记。

字符串转化为时间

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalTest {
    public static void main(String[] args) {
        String date="2021-05-17";
        LocalDate date1=LocalDate.parse(date);

        String time="14:06:57";
        LocalTime time1=LocalTime.parse(time);

        String dateTime="2021-05-17T14:06:57";
        LocalDateTime dateTime1=LocalDateTime.parse(dateTime);

        System.out.println(date1);
        System.out.println(time1);
        System.out.println(dateTime1);
    }
}
//输出结果
//2021-05-17
//14:06:57
//2021-05-17T14:06:57

字符串必须是代码所示的时间表达的结构,如果有些字符串是"2021/05/17"呢?用DateTimeFormatter来解决

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class LocalTest {
    public static void main(String[] args) {
        String date="2021/05/17";
        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy/MM/dd");
        LocalDate date1=LocalDate.parse(date,df);

        String time="14/06/57";
        DateTimeFormatter df2=DateTimeFormatter.ofPattern("HH/mm/ss");
        LocalTime time1=LocalTime.parse(time,df2);

        String dateTime="2021/05/17 14/06/57";
        DateTimeFormatter df3=DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss");
        LocalDateTime dateTime1=LocalDateTime.parse(dateTime,df3);

        System.out.println(date1);
        System.out.println(time1);
        System.out.println(dateTime1);
    }
}
//输出结果
//2021-05-17
//14:06:57
//2021-05-17T14:06:57

时间计算

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalTest {
    public static void main(String[] args) {
        LocalDate date=LocalDate.now();
        LocalTime time=LocalTime.now();
        LocalDateTime dateTime=LocalDateTime.now();

        //加五天
        LocalDate date1=date.plusDays(5);
        //加三分钟
        LocalTime time1=time.plusMinutes(3);
        //减两个月
        LocalDateTime dateTime1=dateTime.minusMonths(2);

        System.out.println(date);
        System.out.println("加五天"+date1);
        System.out.println(time);
        System.out.println("加三分钟"+time1);
        System.out.println(dateTime);
        System.out.println("减两个月"+dateTime1);
    }
}
//输出结果
//2021-05-17
//加五天2021-05-22
//14:34:51.959341
//加三分钟14:37:51.959341
//2021-05-17T14:34:51.959469
//减两个月2021-03-17T14:34:51.959469

关于时间加减的方法

LocalDate:
plusDays();
plusMonths();
plusWeeks();
plusYears();
minusDays();
minusMonths();
minusWeeks();
minusYears();

LocalTime:
plusHours();
plusMinutes();
plusSeconds();
plusNanos();
minusHours();
minusMinutes();
minusSeconds();
minusNanos();

LocalDateTime:
以上方法都有
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚努力学Java的大学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值