java中日期时间类的api

news2024/11/19 18:42:05

目录

1. Instant 类

构造方法

1)Instant.now():获取当前时间戳。

常用方法

1)plus(Duration duration)

2)minus(Duration duration)

3)toEpochMilli()

4)ofEpochMilli(long epochMilli)

5)案例:Instant类的简单使用

1.代码

2.效果

​编辑

2. LocalDate 类

构造方法

1)LocalDate.now()

2)LocalDate.of(int year, int month, int dayOfMonth)

常用方法

1)plusDays(long daysToAdd)

2)minusDays(long daysToSubtract)

3)getYear(), getMonthValue(), getDayOfMonth()

4)with(TemporalAdjuster adjuster)

案例:LocalDate的简单使用

1.代码

2.效果

3. LocalTime 类

构造方法

1)LocalTime.now()

2)LocalTime.of(int hour, int minute, int second, int nanoOfSecond)

常用方法

1)plusHours(long hoursToAdd)

2)minusMinutes(long minutesToSubtract)

3)getHour(), getMinute(), getSecond(), getNano()

案例:LocalTime的简单使用

1.代码

2.效果

4. LocalDateTime 类

构造方法

1)LocalDateTime.now()

2)LocalDateTime.of(LocalDate date, LocalTime time)

常用方法

1)plusDays(long daysToAdd)

2)minusHours(long hoursToSubtract)

3)toLocalDate()

4)toLocalTime()

案例:LocalDateTime的简单使用

1.代码

2.效果

5. Period 类

构造方法

1)Period.between(LocalDate startDate, LocalDate endDate)

常用方法

2)getYears(), getMonths(), getDays()

3)plusYears(long yearsToAdd)

4)minusMonths(long monthsToSubtract)

案例:Period的简单使用

1.代码

2.效果

 

6. Duration 类

构造方法

1)Duration.between(LocalTime startTime, LocalTime endTime)

2)Duration.ofSeconds(long seconds)

常用方法

1)getSeconds(), getNano()

2)plusSeconds(long secondsToAdd)

3)minusNanos(long nanosToSubtract)

案例:Duration类的简单使用

1.代码

2.效果 


1. Instant 类

Instant 表示时间线上的一个瞬间点,通常用于记录应用程序中的时间戳。

  • 构造方法

1)Instant.now():获取当前时间戳。

Instant now = Instant.now();
  • 常用方法

1)plus(Duration duration)

  • 返回一个新的 Instant 对象,表示在当前时间基础上加上指定的持续时间。
    Instant now = Instant.now();
    Instant later = now.plus(Duration.ofHours(1));

2)minus(Duration duration)

  • 返回一个新的 Instant 对象,表示在当前时间基础上减去指定的持续时间。
    Instant now = Instant.now();
    Instant earlier = now.minus(Duration.ofHours(1));

3)toEpochMilli()

  • 将 Instant 转换为自 1970-01-01T00:00:00Z(UTC)以来的毫秒数。
    Instant now = Instant.now();
    long epochMillis = now.toEpochMilli();

4)ofEpochMilli(long epochMilli)

  • 从给定的自 1970-01-01T00:00:00Z 以来的毫秒数创建 Instant
    Instant now = Instant.now();
    Instant instantFromMillis = Instant.ofEpochMilli(epochMillis);

5)案例:Instant类的简单使用

1.代码

package org.xiji.mydate;

import java.time.Duration;
import java.time.Instant;

public class MyInstant {
    public static void main(String[] args) {
        //Instant类的api简单使用
        Instant instant = Instant.now();
        System.out.println("Instant获取当前时间:"+instant);

        //表示在当前时间基础上加上指定的持续时间。
        System.out.println("Instant获取当前时间戳后面一个小时:"+instant.plus(Duration.ofHours(1)));

        System.out.println("Instant获取当前时间戳之前一个小时:"+instant.minus(Duration.ofHours(1)));

        System.out.println("Instant获取当前时间戳的毫秒数:"+instant.toEpochMilli());
        



    }
}

2.效果

2. LocalDate 类

LocalDate 表示不带时区的日期(年、月、日)。

  • 构造方法

1)LocalDate.now()

  • 获取当前日期。
    LocalDate today = LocalDate.now();

2)LocalDate.of(int year, int month, int dayOfMonth)

  • 从给定的年、月、日创建 LocalDate
    LocalDate today = LocalDate.now();
    LocalDate specificDate = LocalDate.of(2023, 10, 9);
  • 常用方法

1)plusDays(long daysToAdd)

  • 返回一个新的 LocalDate 对象,表示在当前日期基础上加上指定的天数。
    LocalDate today = LocalDate.now();
    LocalDate tomorrow = today.plusDays(1);

2)minusDays(long daysToSubtract)

  • 返回一个新的 LocalDate 对象,表示在当前日期基础上减去指定的天数。

    LocalDate today = LocalDate.now();
    LocalDate yesterday = today.minusDays(1);

3)getYear()getMonthValue()getDayOfMonth()

  • 分别获取年、月、日。
    LocalDate today = LocalDate.now();
    
    int year = today.getYear();
    int month = today.getMonthValue();
    int day = today.getDayOfMonth();

4)with(TemporalAdjuster adjuster)

  • 使用 TemporalAdjuster 调整日期。
    LocalDate today = LocalDate.now();
    
    LocalDate firstDayOfNextMonth = today.with(TemporalAdjusters.firstDayOfNextMonth());

案例:LocalDate的简单使用

1.代码

package org.xiji.mydate;

import java.time.LocalDate;

public class MyLocalDate {
    public static void main(String[] args)
    {
        System.out.println("LocalDate的api简单使用");
        LocalDate localDate = LocalDate.now();
        System.out.println("LocalDate获取当前时间:"+localDate);
        System.out.println("LocalDate获取当前年份:"+localDate.getYear());
        System.out.println("LocalDate获取当前月份:"+localDate.getMonth());

        System.out.println("LocalDate获取星期几:"+localDate.getDayOfWeek());
    }
}

2.效果

3. LocalTime 类

LocalTime 表示不带时区的时间(小时、分钟、秒、纳秒)。

  • 构造方法

1)LocalTime.now()

  • 获取当前时间。
    LocalTime now = LocalTime.now();

2)LocalTime.of(int hour, int minute, int second, int nanoOfSecond)

  • 从给定的小时、分钟、秒、纳秒创建 LocalTime
    LocalTime now = LocalTime.now();
    LocalTime specificTime = LocalTime.of(14, 30, 0, 0);
  • 常用方法

1)plusHours(long hoursToAdd)

  • 返回一个新的 LocalTime 对象,表示在当前时间基础上加上指定的小时数。
    LocalTime now = LocalTime.now();
    LocalTime later = now.plusHours(1);

2)minusMinutes(long minutesToSubtract)

  • 返回一个新的 LocalTime 对象,表示在当前时间基础上减去指定的分钟数。
    LocalTime now = LocalTime.now();
    
    LocalTime earlier = now.minusMinutes(30);

3)getHour()getMinute()getSecond()getNano()

  • 分别获取小时、分钟、秒、纳秒。
    LocalTime now = LocalTime.now();
    
    int hour = now.getHour();
    int minute = now.getMinute();
    int second = now.getSecond();
    int nano = now.getNano();

案例:LocalTime的简单使用

1.代码

package org.xiji.mydate;

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

public class MyLocalTime {
    public static void main(String[] args)
    {

        LocalTime localTime = LocalTime.now();

        System.out.println("LocalTime获取当前时间:"+localTime);
        System.out.println("LocalTime获取当前小时:"+localTime.getHour());
        System.out.println("LocalTime获取当前分钟:"+localTime.getMinute());
        System.out.println("LocalTime获取当前秒:"+localTime.getSecond());
        System.out.println("LocalTime获取当前毫秒:"+localTime.getNano());

        System.out.println("LocalTime获取当前时间:"+localTime.toString());
        //日期格式化
        System.out.println("LocalTime日期格式化:"+localTime.format(DateTimeFormatter.ofPattern("HH:mm:ss")));
    }

}

2.效果

4. LocalDateTime 类

LocalDateTime 表示不带时区的日期和时间(年、月、日、小时、分钟、秒、纳秒)。

  • 构造方法

1)LocalDateTime.now()

  • 获取当前日期和时间。
    LocalDateTime now = LocalDateTime.now();

2)LocalDateTime.of(LocalDate date, LocalTime time)

  • 从给定的 LocalDate 和 LocalTime 创建 LocalDateTime
    LocalDateTime now = LocalDateTime.now();
    
    LocalDateTime specificDateTime = LocalDateTime.of(specificDate, specificTime);
  • 常用方法

1)plusDays(long daysToAdd)

  • 返回一个新的 LocalDateTime 对象,表示在当前日期和时间基础上加上指定的天数。
    LocalDateTime now = LocalDateTime.now();
    
    LocalDateTime tomorrow = now.plusDays(1);

2)minusHours(long hoursToSubtract)

  • 返回一个新的 LocalDateTime 对象,表示在当前日期和时间基础上减去指定的小时数。
    LocalDateTime now = LocalDateTime.now();
    
    LocalDateTime earlier = now.minusHours(1);

3)toLocalDate()

  • 获取 LocalDate 部分。
    LocalDateTime now = LocalDateTime.now();
    
    LocalDate datePart = now.toLocalDate();

4)toLocalTime()

  • 获取 LocalTime 部分。
    LocalDateTime now = LocalDateTime.now();
    
    LocalTime timePart = now.toLocalTime();

案例:LocalDateTime的简单使用

1.代码

package org.xiji.mydate;

import java.time.LocalDateTime;

public class MyLocalDateTime {
    public static void main(String[] args) {
        System.out.println("LocalDateTime的api简单使用");
        System.out.println("LocalDateTime获取当前时间:"+ LocalDateTime.now());
        
        System.out.println("LocalDateTime获取当前年份:"+LocalDateTime.now().getYear());
        
        System.out.println("LocalDateTime获取当前月份:"+LocalDateTime.now().getMonth());
        
        System.out.println("LocalDateTime获取当前月份:"+LocalDateTime.now().getMonthValue());
        
        System.out.println("LocalDateTime获取当前星期几:"+LocalDateTime.now().getDayOfWeek());
        
        System.out.println("LocalDateTime获取当前星期几的值:"+LocalDateTime.now().getDayOfWeek().getValue());
        
        System.out.println("LocalDateTime获取当前星期几的名字:"+LocalDateTime.now().getDayOfWeek().name());
        
    }
}

2.效果

5. Period 类

Period 表示一段时间,通常是日期之间的差值,以年、月、日为单位。

  • 构造方法

1)Period.between(LocalDate startDate, LocalDate endDate)

  • 计算两个 LocalDate 之间的差值。
    Period period = Period.between(startDate, endDate);
  • 常用方法

2)getYears()getMonths()getDays()

  • 分别获取年、月、日。
    Period period = Period.between(startDate, endDate);
    
    int years = period.getYears();
    int months = period.getMonths();
    int days = period.getDays();

3)plusYears(long yearsToAdd)

  • 返回一个新的 Period 对象,表示在当前时间段基础上加上指定的年数。
    Period period = Period.between(startDate, endDate);
    
    Period longerPeriod = period.plusYears(1);

4)minusMonths(long monthsToSubtract)

  • 返回一个新的 Period 对象,表示在当前时间段基础上减去指定的月数。
    Period period = Period.between(startDate, endDate);
    
    Period shorterPeriod = period.minusMonths(1);

案例:Period的简单使用

1.代码

package org.xiji.mydate;

import java.time.LocalDate;

public class MyPeriod {
    public static void main(String[] args)
    {
        LocalDate date1 = LocalDate.of(2018, 1, 1);
        LocalDate date2 = LocalDate.of(2018, 12, 31);
        System.out.println("LocalDate的api简单使用");
        System.out.println("LocalDate获取date1当前时间:"+date1);
        System.out.println("LocalDate获取date2当前时间:"+date2);
        System.out.println("LocalDate。date2是否在date1之后:"+(date2.isAfter(date1)));
        System.out.println("LocalDate。date2是否在date1之前:"+(date2.isBefore(date1)));
        System.out.println("LocalDate。date2和date1是否相等:"+(date2.isEqual(date1)));
        System.out.println("LocalDate。date2是否是闰年:"+(date2.isLeapYear()));
        System.out.println("LocalDate。date2这个月的天数:"+(date2.lengthOfMonth()));
        System.out.println("LocalDate。date2这一年的天数:"+(date2.lengthOfYear()));
        System.out.println("LocalDate。date2之前一天:"+(date2.minusDays(1)));
        System.out.println("LocalDate。date2之前一个月:"+(date2.minusMonths(1)));
        System.out.println("LocalDate。date2之前一年:"+(date2.minusYears(1)));
        System.out.println("LocalDate。date2之后一天:"+(date2.plusDays(1)));
        System.out.println("LocalDate。date2之后一个月:"+(date2.plusMonths(1)));
        System.out.println("LocalDate。date2之后一年:"+(date2.plusYears(1)));


    }
}

2.效果

6. Duration 类

Duration 表示一段时间,通常是时间之间的差值,以秒和纳秒为单位。

  • 构造方法

1)Duration.between(LocalTime startTime, LocalTime endTime)

  • 计算两个 LocalTime 之间的差值。
    
    
    Duration duration = Duration.between(startTime, endTime);

2)Duration.ofSeconds(long seconds)

  • 从给定的秒数创建 Duration
    Duration oneMinute = Duration.ofSeconds(60);
  • 常用方法

1)getSeconds()getNano()

  • 分别获取秒数和纳秒数。
    
    
    Duration duration = Duration.between(startTime, endTime);
    long seconds = duration.getSeconds();
    int nano = duration.getNano();

2)plusSeconds(long secondsToAdd)

  • 返回一个新的 Duration 对象,表示在当前时间段基础上加上指定的秒数。
    
    
    Duration duration = Duration.between(startTime, endTime);
    Duration longerDuration = duration.plusSeconds(60);

3)minusNanos(long nanosToSubtract)

  • 返回一个新的 Duration 对象,表示在当前时间段基础上减去指定的纳秒数。
    
    
    Duration duration = Duration.between(startTime, endTime);
    
    Duration shorterDuration = duration.minusNanos(1000000);

案例:Duration类的简单使用

1.代码

package org.xiji.mydate;


import java.time.Duration;

public class MyDuration {
    public static void main(String[] args)
    {

        System.out.println("Duration的api简单使用");

        Duration duration = Duration.ofDays(1);

        System.out.println("Duration获取天数:"+duration.toDays());
        System.out.println("Duration获取小时:"+duration.toHours());
        System.out.println("Duration获取分钟:"+duration.toMinutes());
        System.out.println("Duration获取秒:"+duration.getSeconds());
        System.out.println("Duration获取纳秒:"+duration.toNanos());
        System.out.println("Duration获取毫秒:"+duration.toMillis());

        


    }
}

2.效果 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站建设公司哪家好?好的网站建设公司应该有哪些特别之处?

面对众多的网站建设公司,企业该如何选择呢?如何才能避坑呢?本文将探讨好的网站建设公司应该具备的特别之处 案例,这是最直观的表现,一个好的网站建设公司必然拥有为数众多的的案例展示,且这些案例质量高&a…

基于resnet网络【系列】多类别图像识别、迁移学习:猫狗分类实战

目录 1、前言 2、resnet 猫狗分类实战 2.1 训练 2.2 推理 3、更换数据集训练 1、前言 ResNet(残差网络)是一种深度卷积神经网络架构,广泛用于图像分类任务。它是由微软研究院的研究人员于2015年推出的,以其通过使用残差连接…

Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)

引言 想象一下,只要描述你想要的画面,电脑就能帮你画出来。这在几年前还像是科幻小说里的场景,但随着神经网络和潜在扩散模型(LDM)技术的发展,现在已经成为可能。OpenAI 推出的 DALLE 工具,因其…

vue项目刷新后h5样式失效

vue项目刷新后h5样式失效 今天遇到一个bug,有一个Element的message组件,用它做的一个进度条,它是写在一个页面上,并且是用js控制dom元素的 web端一切正常,h5如果从别的页面跳过来也正常,但是,H…

服装生产管理:SpringBoot框架的高效策略

5 系统的实现 5.1 登录界面的实现 用户要想进入本系统必须进行登录操作,进入对应角色登录界面,在登录界面输入系统账号、登录密码,选择登录类型,点击登录按钮进行登录系统,管理员登录界面展示如图5-1所示&#xff0c…

【STM32开发之寄存器版】(八)-定时器的编码器接口模式

一、前言 1.1 编码器接口原理 编码器模式主要用于检测旋转编码器的转动方向和转动速度。旋转编码器一般输出两路相位相差90度的脉冲信号(称为A相和B相),通过这两路信号,定时器可以判断编码器的旋转方向,并计数转动的脉…

嵌入式学习-线性表Day03-栈

嵌入式学习-线性表Day03-栈 栈 顺序栈 2)入栈 3)出栈 链式栈 栈 什么是栈? 只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底 栈特点: 先进…

儿童(青少年)可以参加哪些含金量高的比赛?

随着素质教育的推进,越来越多的家长和老师开始关注如何培养孩子的综合素质和能力。而参加各类比赛,不仅可以锻炼孩子的思维、动手能力和团队合作精神,还能帮助孩子在学习的过程中找到兴趣点和成就感。尤其是一些含金量高的比赛,不…

什么是静态加载-前端

什么是前端静态加载 在前端开发中,静态加载是一种常见且重要的技术。简单来说,前端静态加载指的是在页面加载时将所需的资源(如HTML、CSS、JavaScript、图片等)一并加载到用户的浏览器中。这种方式有助于提高页面的加载速度和用户…

【宽搜】6. leetcode 513 找树左下角的值

1 题目描述 题目链接&#xff1a;找树左下角的值 2 题目解析 思路&#xff1a; 可以使用 层序遍历&#xff0c; 将每一层的值都存入到一个vector< int> 中&#xff0c;当这一层是最后一层的时候&#xff0c;将vector< int>中的第一个值返回即可。 3 代码 cla…

RemoteView(kotlin)

使用场景&#xff1a;通知栏&桌面部件 自定义通知栏 通知权限申请 manifest配置 <uses-permission android:name"android.permission.POST_NOTIFICATIONS" />权限动态申请 package com.example.kotlinlearn.Common;import android.Manifest; import an…

国产长芯微LDUM8801光耦兼容的单通道隔离式栅极驱动器P2P替代UCC23513 FOD8342 TLP5751成本低,质量更好

描述 LDUM8801是单通道兼容光耦输入的隔离式栅极驱动器&#xff0c;可应用于驱动IGBT、SiC 和 MOSFET。它可以提供5A的峰值拉/灌电流。支持150kV/μs的最小共模瞬态免疫&#xff08;CMTI&#xff09;&#xff0c;确保了系统的鲁棒性。驱动器的最大电源电压为32V。 其与光耦式栅…

【计网】【计网】从零开始学习http协议 ---理解http重定向和请求方法

去光荣地受伤&#xff0c; 去勇敢地痊愈自己。 --- 简嫃 《水问》--- 从零开始学习http协议 1 知识回顾2 认识网络重定向3 http请求方法3.1 http常见请求方法3.2 postman工具进行请求3.3 处理GET和POST参数 1 知识回顾 前面两篇文章中我们学习并实现了http协议下的请求与应…

【LeetCode】每日一题 2024_10_9 找到按位或最接近 K 的子数组(LogTrick、位运算)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;找到按位或最接近 K 的子数组 代码与解题思路 今天是 2100 的题目&#xff0c;难度略高&#xff0c;不在我的能力范围&#xff0c;推荐题解&#xff1a;两种方法&#xff1a;LogTrick/滑…

设计模式——门面模式 | 外观模式

哈喽&#xff0c;各位盆友们&#xff01;我是你们亲爱的学徒小z&#xff0c;今天给大家分享的文章是设计模式的——门面模式。 文章目录 定义通用类图1.通用结构2.优点3.缺点 使用场景注意事项1.一个子系统可以有多个门面2.门面不参与子系统内的业务逻辑 定义 定义&#xff1a;…

【Flutter】合并多个流Stream

1.说明 无意间发现了一个好用的库rxdart&#xff0c;它为 Dart 的 Stream 添加了额外的功能。 2.功能 &#xff08;1&#xff09;合并多个流Stream 借助Rx.combineLatest2()合并两个流stream1和stream2。 注意&#xff1a;如果dart文件中同时使用了getx&#xff0c;需要隐…

PCL 3D-SIFT关键点检测(Z方向梯度约束

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 SIFT关键点检测 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#…

调用CString::Format接口格式化字符串时产生异常,可能是将当前的CString对象作为参数传给CString::Format接口导致的

最近有人在技术群里问一个关于使用MFC库中的CString类格式化字符串时遇到的问题&#xff0c;有时格式化出来的字符串有问题&#xff08;不是预期的&#xff09;&#xff0c;有时会产生异常崩溃&#xff0c;让我们帮忙分析一下&#xff0c;看看是什么原因导致的。 后来到MSDN上查…

JAVA基础: synchronized 和 lock的区别、synchronized锁机制与升级

1 synchronized 和 lock的区别 synchronized是一个关键字&#xff0c; lock是一个接口&#xff0c;实际使用的是实现类 synchronized通过触发的是系统级别的锁机制&#xff0c; lock是API级别的锁机制 synchronized自动获得锁&#xff0c;自动释放锁。 lock需要通过方法获得锁…

基于SSM的校园教务系统的设计与实现(论文+源码)_kaic

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对校园教务信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差…