首页 > 编程语言 >Java8日期处理

Java8日期处理

时间:2022-09-19 11:00:54浏览次数:74  
标签:处理 System 日期 2022 println now LocalDate Java8 out

Java8 推出了新的日期API

序号 描述
1 Instant 时间戳
2 Duration 持续时间,时间差
3 LocalDate 只包含日期,例如:2022-09-19
4 LocalTime 只包含时间,例如:10:01:20
5 LocalDateTime 包含时间和日期,例如:2022-09-19 10:01:20
6 Period 时间段
7 ZoneOffset 时区偏移量
8 ZonedDateTime 带时区的时间
9 Clock 时钟,获取当时的时间戳,或当前时区下的日期时间信息
10 java.time.format.DateTimeFormatter 时间格式化

代码示例:

点击查看代码
package com.date;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

public class DateDemo {
    public static void main(String[] args) {
        //获取今天
        LocalDate now = LocalDate.now();
        System.out.println(now);// 2022-09-19
        //获取年月日
        int year = now.getYear();
        int month = now.getMonthValue();
        int day = now.getDayOfMonth();
        System.out.println("year:" + year);//   year:2022
        System.out.println("month:" + month);// month:9
        System.out.println("day:" + day);//     day:19
        //自定义日期,需要传入年,月,日作为参数
        LocalDate date = LocalDate.of(2022, 9, 29);
        System.out.println(date);// 2022-09-29
        //判断日期相等
        if(date.equals(now)){
            System.out.println("相等");
        }else{
            System.out.println("不等");// 不等
        }
        //检查类似生日这种周期性事件
        MonthDay monthDay = MonthDay.of(date.getMonthValue(), date.getDayOfMonth());
        MonthDay currentMonthDay = MonthDay.from(now);
        System.out.println(monthDay+"-----"+currentMonthDay);
        if(currentMonthDay.equals(monthDay)){
            System.out.println("是你的生日");
        }else{
            System.out.println("没有到");// 没有到
        }
        //获取当前时间,无日期
        LocalTime localTime = LocalTime.now();
        System.out.println(localTime);// 10:47:16.691
        //当前时间加3个小时
        LocalTime plusHours = localTime.plusHours(3);
        //当前时间加3分钟
        LocalTime plusMinutes = localTime.plusMinutes(3);
        //当前时间加3秒
        LocalTime plusSeconds = localTime.plusSeconds(3);
        //当前时间加3纳秒
        LocalTime plusNanos = localTime.plusNanos(3);
        //当前年月日加一周,同样的加一年、一个月或几年几个月,只需要换第二个参数
        LocalDate plusWeeks = now.plus(1, ChronoUnit.WEEKS);
        System.out.println("三小时后:"+plusHours); // 三小时后:13:47:16.691
        System.out.println("一周后的日期:"+plusWeeks); // 一周后的日期:2022-09-26
        //计算一年前的日期
        LocalDate lastYear = now.minus(1, ChronoUnit.YEARS);
        System.out.println(lastYear);// 2021-09-19
        //Clock
        Clock clock = Clock.systemUTC();
        //获取时间戳
        System.out.println(clock.millis());// 1663555636691
        //根据系统时区获取
        Clock systemDefaultZone = Clock.systemDefaultZone();
        System.out.println(systemDefaultZone.millis()); // 1663555636691
        //判断给定的日期是大于某天还是小于某天
        LocalDate tomorrow = LocalDate.of(2022, 9, 20);
        if(tomorrow.isAfter(now)){
            System.out.println(tomorrow);// 2022-09-20
        }
        LocalDate yesterday = now.minus(1, ChronoUnit.DAYS);
        if (yesterday.isBefore(now)){
            System.out.println(yesterday);// 2022-09-18
        }
        //处理时区,下面的例子展示将本时区的时间转化为另一个时区
        ZoneId zoneId = ZoneId.of("America/New_York");
        LocalDateTime localDateTime = LocalDateTime.now();
        ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);
        System.out.println(zonedDateTime);//2022-09-19T10:26:07.061-04:00[America/New_York]
        //时间间隔(两个日期间的天数和月数)
        Period between = Period.between(now, date);
        System.out.println(between.getDays());//2022-9-29 与 2022-9-19相差10天
        System.out.println(between.getMonths());//0
        //获取当前时间戳
        Instant instant = Instant.now();
        System.out.println(instant.toEpochMilli());// 1663555636695
        //使用预定义的格式化工具格式化日期
        String d = "20220920";
        LocalDate parse = LocalDate.parse(d, DateTimeFormatter.BASIC_ISO_DATE);
        System.out.println(parse);//2022-09-20
        //日期转字符串
        LocalDateTime dateTime = LocalDateTime.now();
        DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String s = dateTime.format(pattern);
        System.out.println(s);// 2022/09/19 10:47:16
        //字符串转日期
        LocalDate localDate = LocalDate.parse(s, pattern);
        System.out.println(localDate);//2022-09-19
    }
}

标签:处理,System,日期,2022,println,now,LocalDate,Java8,out
From: https://www.cnblogs.com/xiubai/p/16706773.html

相关文章

  • 前端开发必备的文件处理库
    今天来分享几个前端文件处理相关的实用工具库!  1.PDF(1)PDF.jsPDF.js是使用HTML5构建的可移植文档格式(PDF)查看器。它由社区驱动并受Mozilla支持,目标是创建......
  • 自动以管理员身份运行批处理
    @echooffremMODEcon:COLS=100LINES=30>nulver|find"5.">NUL&&goto:cmdbeginfor/f"tokens=3,*"%%Iin('regquery"HKLM\SYSTEM\CurrentControlSet\Contro......
  • 表头与行的联动及数据处理
      下拉框组件两个功能:(1)可以接收父组件的值(2)修改的时候可以把值传给父组件特殊:有自定义的功能  <Selectvalue={selectedValue}onChange={(value)=>{s......
  • 获取一个月内有的日期
    指定格式为“yyyy-MM-dd”以当前月的某一天为基础点击查看代码@Testpublicvoidtest4(){LocalDatestart=LocalDate.now().with(TemporalAdjuster......
  • 【java8新特性】02:常见的函数式接口
    Jdk8提供的函数式接口都在java.util.function包下,Jdk8的函数式类型的接口都有@FunctionInterface注解所标注,但实际上即使没有该注解标注的有且只有一个抽象方法的接口,都可......
  • Java8新特性
    1.lambda表达式即允许将函数作为参数传递进方法中。可以替代匿名内部类的编写新手一开始不能直接写出lambda表达式,我们可以先用Idea的提示写出匿名内部类,匿名内部类比较......
  • Java8/18
    Java流程控制1.用户交互ScannerScanner是Java5提供的一个工具类(java.until.Scanner),用来获取用户的输入,实现人机交互。基本语法:Scanners=newScanner(System.in);......
  • Java8/18
    Java方法1.方法概念eg:System.out.println();----System是一个系统类,out是System类的一个输出对象,println()就是一个方法什么是方法:Java方法是语句的集合,他们在一起执行......
  • 【利用Python进行edf格式的肌电处理的一些过程记录】-2022/09
    (1)获取原肌电数据,生成图片1.使用的库:mne2.肌电数据的格式:edfdefShow_Information(file):raw=read_raw_edf(file,preload=True)info=raw.info......
  • AOP切面编程思想 @RestControllerAdvice 实现处理统一的异常处理
    笔者注:@RestControllerAdvice比@ControllerAdvice多一个@Responsebody注解,即restful风格,方便内部method不用反复加@Responsebody注解另外,下面图片处无需再加@Component......