Java第三代时间API

一.LocalDate

复制代码
import org.junit.jupiter.api.Test;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;

public class TestLocalDate {
    @Test
    public void testLocalDate() {
        /*
        * LocalDate : 获取日期(构造器私有)
        * 1. LocalDate.of(int year, int month, int dayOfMonth) : 获取指定日期--赋值给对象
        *   1.1 LocalDate locDat = LocalDate.of(2020, 10, 10);//先创建LocalDate的对象,使用locDar.function();
        *       int year = locDat.getYear();//获取对象的年
        *   1.2 int month = locDat.getMonthValue();//获取对象月
        *   1.3 int dat = locDat.getDayOfMonth();//获取对象日
        * 2.LocalDate.now() : 获取当前日期
        * 3.枚举类型
        *   3.1 Month.of(int month) : 获取指定月份
        *   3.2 DayOfWeek.of(int dayOfWeek) : 获取指定星期
        * 4.parse() : 解析合法的字符串为时间
        *   4.1 LocalDate locDat = LocalDate.parse("2020-10-10");
        * */

        //1.LocalDate.of(int year, int month, int dayOfMonth) : 获取指定日期--赋值给对象
        LocalDate locDat = LocalDate.of(2020, 10, 10);
        /*  1.1 LocalDate locDat = LocalDate.of(2020, 10, 10);//先创建LocalDate的对象,使用locDar.function();
               int year = locDat.getYear();//获取对象的年
            1.2 int month = locDat.getMonth();//获取对象月
            1.3 int dat = locDat.getDayOfMonth();//获取对象日*/
        int year = locDat.getYear();
        int month = locDat.getMonthValue();
        int dat = locDat.getDayOfMonth();
        System.out.println(year + "年" + month + "月" + dat + "日");
        //2.LocalDate.now() : 获取当前日期
        LocalDate now = LocalDate.now();
        System.out.println("The result of : LocalDate now = LocalDate.now(); is " + now);
        /** 3.枚举类型
                *   3.1 Month.of(int month) : 获取指定月份
                *   3.2 DayOfWeek.of(int dayOfWeek) : 获取指定星期*/
        Month month1 = locDat.getMonth();
        DayOfWeek dayOfWeek = locDat.getDayOfWeek();
        System.out.println("The result of : Month month1 = locDat.getMonth(); is " + month1);
        System.out.println("The result of : DayOfWeek dayOfWeek = locDat.getDayOfWeek(); is " + dayOfWeek);

    }
}

二.LocalTime

复制代码
import org.junit.jupiter.api.Test;

import java.time.LocalTime;

public class TestLocalTime {
    @Test
    public void testLocalTime() {
        /*
        * LocalTime : 获取时间
        * 1.LocalTime.now() : 获取当前时间
        * 2.LocalTime.of(int,int,int) : 获取某时间,参数:时,分,秒
        *   2.1int h = localTime.getHour(); 获取小时
        *   2.2int m = localTime.getMinute(); 获取分钟
        *   2.3int s = localTime.getSecond(); 获取秒
        *   2.4int n = localTime.getNano(); 获取纳秒
        * 3.LocalTime.parse("HH:mm:ss") : 把合法的时间格式解析为LocalTime对象
        * */

        //1.LocalTime.now() : 获取当前时间
        LocalTime localTime = LocalTime.now();
        System.out.println("LocalTime is : " + localTime);

        /* 2.LocalTime.of(int,int,int) : 获取某时间,参数:时,分,秒
                *   2.1int h = localTime.getHour(); 获取小时
                *   2.2int m = localTime.getMinute(); 获取分钟
                *   2.3int s = localTime.getSecond(); 获取秒
                *   2.4int n = localTime.getNano(); 获取纳秒*/
        LocalTime localTime1 = LocalTime.of(11, 12, 13);
        int h = localTime1.getHour();
        int m = localTime1.getMinute();
        int s = localTime1.getSecond();
        System.out.println("LocalTime is : " + h + "时" + m + "分" + s + "秒");

        /* 3.LocalTime.parse("HH:mm:ss") : 把合法时间格式解析为LocalTime对象*/
        LocalTime localTime2 = LocalTime.parse("11:12:13");
        System.out.println("Parsed LocalTime is : " + localTime2);
    }
}

三.LocalDateTime

复制代码
import org.junit.jupiter.api.Test;

import java.time.*;

public class TestLocalDateTime {
    @Test
    public void testLocalDateTime() {
        /*
        * LocalDateTime API : 获取当前日期和时间
        * 1.LocalDateTime.now() : 获取当前日期和时间
        * 2.LocalDateTime localDateTime = LocalDateTime.of(date,time); : 创建某天的对象
        *   2.1  LocalDateTime localDateTime = LocalDateTime.of(2026,1,14,10,10,10); : 创建某天的对象
        *   2.2  locDate.atTime(LocalTime) : 获取某天某个时间
        *         LocalDate locDat = LocalDate.of(2026,1,14);
        *         locDate.atTime(LocalTime) : 拼接成为一个LocalDateTime对象
        *   2.3  locTime.atDate(LocalDate) : 获取某时间某天
        *         LocalTime locTime = LocalTime.of(10,10,10);
        *         locTime.atDate(LocalDate) : 拼接成为一个LocalDateTime对象
        * 3.转换为LocalDate,LocalTime
        *   3.1  LocalDate localDate = localDateTime.toLocalDate();
        *   3.2  LocalTime localTime = localDateTime.toLocalTime();
        * 4.获取时间戳 Instant类表示的是1970-1-1到现在的秒数。
        *   4.1  Instant.now() : 获取时间戳
        *   4.2  Instant.parse("2020-10-10T10:10:10") : 获取时间戳,转换为Instant对象
        * 5.Period,Duration : 计算两个日期,时间之间的间隔
        *   5.1  Period : 计算两个日期之间的间隔
        *       5.1.1  Period.between(start,end) : 计算两个日期之间的间隔
        *       5.1.2  Period.ofDays(10) : 获取两个日期之间的间隔
        *       5.1.3  Period.of(1,1,1); : 获取两个日期之间的间隔
        *   5.2  Duration : 获取两个时间之间的间隔
        *       5.2.1  Duration.between(start,end) : 获取两个时间之间的间隔
        *       5.2.2  Duration.ofDays(10) : 获取两个时间之间的间隔
        * */
        LocalDate localDate = LocalDate.now();
        System.out.println("LocalDate is : "+localDate);
        LocalTime localTime = LocalTime.now();
        System.out.println("LocalTime is : "+localTime);
        LocalDateTime now = LocalDateTime.now();
        System.out.println("LocalDateTime is : " + now);
        System.out.println("LocalDateTime is : " + now.getYear() + "年" + now.getMonthValue() +
                "月" + now.getDayOfMonth() + "日" + now.getHour() + "时" + now.getMinute() + "分" + now.getSecond() + "秒");
        Month month = now.getMonth();
        System.out.println("LocalDateTime is : " + month);
        int dayOfMonth = now.getDayOfMonth();
        System.out.println("LocalDateTime is : " + dayOfMonth);
        DayOfWeek dayOfWeek = now.getDayOfWeek();
        System.out.println("LocalDateTime is : " + dayOfWeek);
        int dayOfYear = now.getDayOfYear();
        System.out.println("LocalDateTime is : " + dayOfYear);
        LocalDate start = LocalDate.of(2028,11,26);
        boolean leapYear = start.isLeapYear();
        System.out.println("LocalDateTime is : " + leapYear);
    }
}

四.DateTimeFormatter

复制代码
import org.junit.jupiter.api.Test;

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

public class TestDateTimeFomatter {
    @Test
    public void testDateTimeFormatter() {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        LocalDateTime now = LocalDateTime.now();
        System.out.println("LocalDateTime is : " + dateTimeFormatter.format(now));
    }
}
相关推荐
不正经学生10 分钟前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技19 分钟前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
恋恋西风3 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
学长毕业设计3 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
Brilliantwxx3 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
东小西3 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西3 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午3 小时前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065254 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
BizzZ_4 小时前
C++(22)——类型转换和IO流
开发语言·c++