【Java 基础】24 日期操作

文章目录

    • 1.Date
    • 2.LocalDate
    • 3.LocalTime
    • 4.LocalDateTime
    • 5.DateTimeFormatter
    • 6.Period
    • 7.Duration
    • 8.ZoneId
    • 9.ZonedDateTime
    • 总结

日期和时间是我们常见的操作对象,Java 也提供了强大的日期和时间处理类库,使我们可以方便的进行日期的表示、计算、格式化等。
常用的有:
在这里插入图片描述

1.Date

在 Java 早期版本中,主要使用 java.util.Date 类来表示日期和时间

示例代码:

public class Demo {
    public static void main(String[] args) {
        // 获取当前时间
        Date currentDate = new Date();
        System.out.println(currentDate);

        // 获取时间戳
        long timestamp = currentDate.getTime();
        System.out.println(timestamp);
    }
}

运行结果:

Thu Dec 07 20:58:11 CST 2023
1701953891262

2.LocalDate

表示日期 ,提供了丰富的方法来进行日期操作

示例代码:

public class Demo {
    public static void main(String[] args) {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        System.out.println(currentDate);
    }
}

输出结果:

2023-12-07

3.LocalTime

表示时间,提供了丰富的方法来进行时间的操作

示例代码:

public class Demo {
    public static void main(String[] args) {
        // 获取当前时间
        LocalTime currentTime = LocalTime.now();
        System.out.println(currentTime);
    }
}

输出结果:

21:08:21.256

4.LocalDateTime

表示日期时间 ,提供了丰富的方法来进行时间的操作

示例代码:

public class Demo {
    public static void main(String[] args) {
        // 获取当前日期时间
        LocalDateTime currentDateTime = LocalDateTime.now();
        System.out.println(currentDateTime);
    }
}

输出结果:

2023-12-07T21:08:21.256

5.DateTimeFormatter

用于格式化和解析日期时间,它提供了丰富的预定义格式,同时也支持自定义格式

示例代码:

public class Demo {
    public static void main(String[] args) {
        LocalDateTime currentDateTime = LocalDateTime.now();

        // 使用预定义格式
        String formattedDateTime = currentDateTime.format(DateTimeFormatter.ISO_DATE_TIME);
        System.out.println(formattedDateTime);

        // 使用自定义格式
        DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String customFormattedDateTime = currentDateTime.format(customFormatter);
        System.out.println(customFormattedDateTime);
    }
}

输出结果:

2023-12-07T21:02:23.796
2023-12-07 21:02:23

6.Period

用于表示日期之间的差距

示例代码:

public class Demo {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2020, 1, 1);
        LocalDate endDate = LocalDate.now();

        // 计算日期之间的差距
        Period period = Period.between(startDate, endDate);
        System.out.println("Years: " + period.getYears() + ", Months: " + period.getMonths() + ", Days: " + period.getDays());
    }
}

输出结果:

Years: 3, Months: 11, Days: 6

7.Duration

用于表示时间之间的差距

示例代码:

public class Demo {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2020, 1, 1);
        LocalDate endDate = LocalDate.now();

        // 计算时间之间的差距
        long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);
        System.out.println("Days Difference: " + daysDiff);
    }
}

输出结果:

Days Difference: 1436

8.ZoneId

用于表示时区

示例代码:

public class Demo {
    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();

        // 获取系统默认时区
        ZoneId systemZone = ZoneId.systemDefault();
        ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, systemZone);
        System.out.println(zonedDateTime);
    }
}

输出结果:

2023-12-07T21:07:11.523+08:00[Asia/Shanghai]

9.ZonedDateTime

用于获取日期和时间以及时区信息

示例代码:

public class Demo {
    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.now();

        // 获取指定时区
        ZoneId newYorkZone = ZoneId.of("America/New_York");
        ZonedDateTime newYorkDateTime = ZonedDateTime.of(localDateTime, newYorkZone);
        System.out.println(newYorkDateTime);
    }
}

输出结果:

2023-12-07T21:07:11.523-05:00[America/New_York]

总结

Java 提供了丰富的日期和时间处理类,包括 DateLocalDateLocalTimeLocalDateTimeDateTimeFormatterPeriodDurationZoneIdZonedDateTime。选择合适的类取决于具体的需求,但通常推荐使用新的日期和时间 API,例如 LocalDateTime,以获得更好的可读。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server数据库的备份和还原

6.2 SQL Server备份和还原 数据库管理员最担心的情况就是数据库瘫痪,造成数据丢失,而备份作为数据的副本,可以有 效地保护和恢复数据。本节将介绍数据备份的原因,备份的方式.SOL Server的恢复模式.以及备 份策略和备份设备。 6.2…

思维模型 色彩心理效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知色彩影响情绪。 1 色彩心理效应的应用 1.1 色彩心理效应在营销中的应用 1 可口可乐公司的“红色”营销 可口可乐公司是全球最著名的饮料品牌之一,其标志性的红色包装已经成为了…

嵌入式_基于STM32F4标准库的Flash读写操作

嵌入式_基于STM32F4标准库的Flash读写操作 文章目录 嵌入式_基于STM32F4标准库的Flash读写操作前言一、STM32F4的 Flash 简介二、闪存的读写操作1.闪存的读取2.闪存的解锁、擦除和写入1.闪存解锁2.闪存擦除3.闪存写入 三、完整代码 前言 在STM32芯片内有一个Flash存储器断电后…

整数二分的建模

当题目能够使用整数二分法建模时&#xff0c;主要有整数二分法思想进行判定&#xff0c;它的基本形式如下&#xff1a; while(left < right) {int ans;//记录答案 int mid left (right - left) / 2;//二分if(check(mid)){//检查条件&#xff0c;如果成立 ans mid;//记录…

学习spring、springmvc、mybatis、ssm所有可能用到的依赖总结,父工程pom文件依赖,<packaging>pom</packaging>

1、父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

Java:UDP 通信方法(发送 + 接收)并 实现简单的聊天 详细代码

文章目录 UDP 通信编程发送 数据接收 数据实现简易的通信聊天 UDP 通信编程 发送 数据 创建 DatagramSocket 对象&#xff08;创办 快递公司&#xff09; 不传参&#xff0c;随机一个可用端口&#xff0c;传参&#xff0c;可指定端口。&#xff08;发送端口&#xff09;创建 …

Leetcode算法题笔记(1)

目录 哈希1. 两数之和1.1 解法11.1 解法2 2. 字母异位词分组2.1 解法12.2 解法2 3. 最长连续序列3.1 解法 小结 双指针4. 移动零4.1 解法14.2 解法2 5. 盛最多水的容器5.1 解法一5.2 解法二 6. 三数之和6.1 解法16.2 解法2 7. 接雨水7.1 解法1 小结 滑动窗口8. 无重复字符的最长…

随机Numpy数组的创建方法(第2讲)

随机Numpy数组的创建方法 &#xff08;第2讲&#xff09;         &#x1f379;博主 侯小啾 感谢您的支持与信赖。☀️ &#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&#x1f339;꧔ꦿ&…

代码随想录算法训练营 ---第五十八天

今天开启单调栈的征程。 第一题&#xff1a; 简介&#xff1a; 本题有两种解法&#xff0c;第一种&#xff1a;暴力破解 两层for循环 时间复杂度为O(n^2) 超时了 第二种&#xff1a;单调栈解法也是今天的主角。 单调栈是什么&#xff1f; 单调递增栈&#xff1a;单调递增栈…

在vue中深度选择器的使用

一、为什么要使用深度选择器 在vue中&#xff0c;当我们使用了第三方库中的组件时&#xff0c;想要更改一些样式&#xff0c;达到我们想要的效果&#xff0c;由于scoped的影响直接编写同名样式时&#xff0c;是覆盖不了组件内的样式的。 为了达到我们想要的效果&#xff0c;…

关于最长上升子序列的动态规划问题的优化算法(二分搜索)

最长递增子序列 暴力解法&#xff1a; 思路&#xff1a;使用动态规划的思想&#xff0c;判断当前元素之前的所有元素&#xff0c;如果比当前元素小&#xff0c;则修改当前元素的最长递增子序列&#xff08;需判断是否需要修改&#xff09;。 时间复杂度&#xff1a;O(n^2) im…

智能优化算法应用:基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于天鹰算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.天鹰算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

记一次Java内存溢出导致程序宕机的问题及排查

Hi, I’m Shendi 记一次Java内存溢出导致程序宕机的问题及排查 问题场景 今天在使用工具中的 word 转 pdf 出了问题&#xff0c;报502错误&#xff0c;打开服务器发现服务被关闭了&#xff0c;起初以为是误关&#xff0c;打开后重新转换又出现了这个问题&#xff0c;在项目文件…

Redis保证高可用的三种方式

Redis保证高可用主要有三种方式&#xff1a;主从、哨兵、集群。 主从复制了解吗&#xff1f; Redis主从复制简图 主从复制&#xff0c;是指将一台 Redis 服务器的数据&#xff0c;复制到其他的 Redis 服务器。前者称为 主节点(master)&#xff0c;后者称为 从节点(slave)。且…

【EXCEL】offset函数

语法&#xff1a; offset(reference,row,column,[height],[width]) 例子&#xff1a;

Java网络编程 *TCP与UDP协议*

网络编程 什么是计算机网络? 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统 简单来说就是把不同地区的计算机通过设备连接起来,实现不同地区之前的数据传输 网络编程是干什么的? 网络…

UDS诊断 10服务

文章目录 简介诊断会话切换请求和响应1、请求2、子功能3、肯定响应4、否定响应5、特殊的NRC 为什么划分不同会话报文示例UDS中常用 NRC参考 简介 10服务&#xff0c;即 Diagnostic Session Control&#xff08;诊断会话控制&#xff09;服务用于启用服务器中的不同诊断会话&am…

【软件测试】系统测试

一、系统测试概念 系统测试&#xff08;System Testing&#xff09;是将已经集成好的软件系统&#xff0c;作为整个基于计算机系统的一个元素&#xff0c;与计算机硬件、外设、某些支持软件、数据和人员等其他元素结合在一起&#xff0c;在实际运行环境下&#xff0c;对计算机…

定兴县第三实验小学开展“宪法宣传周”系列活动

2023年12月4日是我国第十个国家宪法日&#xff0c;我校集中深入学习宣传宪法&#xff0c;弘扬宪法精神&#xff0c;维护宪法权威&#xff0c;开展“宪法宣传周”系列活动。 宪法主题升旗仪式 五&#xff08;6&#xff09;班薛谨熙同学以《学法懂法 与我同行》为主题做国旗下讲…

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法&#xff0c;它是将数据分成互不相交的K类。K均值法先指定聚类数&#xff0c;目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小&#xff0c;规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…