JavaSE-日期时间(个人笔记,勿喷)

(二)日期类

​ LocalDate:年月日

package demo0728;

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

public class Date {
    public static void main(String[] args) {
        //获取本地日期对象
        LocalDate ld=LocalDate.now();

        //获取日期对象中的信息
        int year=ld.getYear();//2023
        int month=ld.getMonthValue();//7
        int day=ld.getDayOfMonth();//28
        int dayOfYear=ld.getDayOfYear();//209
        DayOfWeek dayOfWeek=ld.getDayOfWeek();//FRIDAY
        int dayOfWeek2=ld.getDayOfWeek().getValue();//5
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println(dayOfYear);
        System.out.println(dayOfWeek);
        System.out.println(dayOfWeek2);

        System.out.println(ld);//2023-07-28

        //直接修改某个信息:withYear、withMonth、withDayOfMonth、withDayOfYear
        LocalDate ld2=ld.withYear(2099);
        System.out.println(ld2);//2099-07-28

        //把某个信息加多少:plusYears、plusMonths、plusDays、plusWeeks
        LocalDate ld3=ld.plusYears(2);
        System.out.println(ld3);//2025-07-28
        LocalDate ld4=ld.plusWeeks(2);
        System.out.println(ld4);//2023-08-11

        //把某个信息减多少:minusYears、minusMonths、minusDays、minusWeeks

        //获取指定日期的LocalDate对象:
        LocalDate ld5=LocalDate.of(2099,12,12);
        LocalDate ld6=LocalDate.of(2099,12,12);
        System.out.println(ld5);


        //判断2个日期是否相等,在前还是在后
        System.out.println(ld5.equals(ld6));//true
        System.out.println(ld5.isAfter(ld4));//true
        System.out.println(ld4.isBefore(ld5));//true
    }
}

​ LocalTime:时分秒

package demo0728;

import java.time.LocalTime;

public class DateTime {
    public static void main(String[] args) {
        //获取时分秒纳秒,不可变
        LocalTime lt=LocalTime.now();

        //获取时间中的信息
        int hour=lt.getHour();//时
        int minute=lt.getMinute();//分
        int second=lt.getSecond();//秒
        int nano=lt.getNano();//纳秒

        //修改时间:withHour、withMinute、withSecond、withNano
        LocalTime lt2=lt.withHour(10);
        //..........

        //加多少:plusHour、plusMinutes、plusSeconds、plusNano
        LocalTime lt3=lt.plusHours(10);
        //..........

        //减多少:minusHour、minusMinutes、minusSeconds、minusNanos

        //获取指定时间的LocalTime对象
        LocalTime lt4=LocalTime.of(12,12,12);

        //比较
        System.out.println(lt4.equals(lt3));
        System.out.println(lt.isAfter(lt2));
        System.out.println(lt.isBefore(lt2));
    }
}

​ LocalDateTime:年月日时分秒

package demo0728;

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

public class DateTime {
    public static void main(String[] args) {
        //获取本地日期和时间对象,年月日时分秒纳秒,前两个类有的方法它都有
        LocalDateTime localDateTime=LocalDateTime.now();
        System.out.println(localDateTime);//2023-07-28T11:37:55.874247600

        //转成LocalDate对象
        LocalDate ld=localDateTime.toLocalDate();
        System.out.println(ld);//2023-07-28
        //转成LocalTime对象
        LocalTime lt=localDateTime.toLocalTime();
        System.out.println(lt);//11:37:55.874247600

        //合
        LocalDateTime localDateTime1=LocalDateTime.of(ld,lt);
        System.out.println(localDateTime1);//2023-07-28T11:39:28.435989300
    }
}

​ ZoneId:时区

​ ZonedDataTime:带时区的时间

 Instant:时间戳/时间线

 //代码的性能分析,记录用户操作的时间点
 //创建Instant的对象,获取此刻时间
 //从1970-01-01 00:00:00开始到此刻的总秒数+不够一秒的纳秒数
 Instant instant1=Instant.now();
 //代码执行。。。。
 Instant instant2=Instant.now();

 DateTimeFormatter:用于时间的格式化和解析(线程安全)

package demo0728;

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

public class DataTimeFormatter {
    public static void main(String[] args) {
        //创建一个日期时间格式化器对象
        DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        DateTimeFormatter formatter2=DateTimeFormatter.ofPattern("yyyy-MM-dd");

        //对时间进行格式化
        LocalDateTime localDateTime=LocalDateTime.now();
        System.out.println(localDateTime);//2023-07-28T15:59:45.918573600
        LocalDate localDate=LocalDate.now();
        System.out.println(localDate);

        String rs=formatter.format(localDateTime);//正向格式化
        System.out.println(rs);//2023-07-28 15:59:45
        String rs1=formatter2.format(localDate);
        System.out.println(rs1);//2023-07-28

        //另一种方式
        String rs2=localDateTime.format(formatter);//反向格式化
        System.out.println(rs2);//2023-07-28 15:59:45

        //解析时间,解析时间一般使用LocalDateTime提供的解析方法来解析
        String dateStr="2029-12-12 12:12:12";
        LocalDateTime ldt=LocalDateTime.parse(dateStr,formatter);
        System.out.println(ldt);//2029-12-12T12:12:12

    }
}

 Period:时间间隔(年月日)

​ Duration:时间间隔(时分秒纳秒)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值