Java时间获取、格式化详情

news2025/1/17 2:57:21

Java时间获取详情

    • java.util.Date
    • java.util.Calendar
    • Java8推荐的时间获取方法
      • LocalDate获取日期
      • LocalTime获取时间
      • LocalDateTime 获取时间和日期

这里先附上后面会用到的进行时间格式化的代码:

    SimpleDateFormat timeSimpleDateFormatter = new SimpleDateFormat("hh:mm:ss");
    SimpleDateFormat daySimpleDateFormatter = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat dateSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss");
    DateTimeFormatter dayFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");

插一嘴,SimpleDateFormat是非线程安全的,其基于Calendar。而DateTimeFormatter则是线程安全的。
在这里插入图片描述
在这里插入图片描述

java.util.Date

最常用的时间类,也支持格式化

        Date date = new Date();
        System.out.println("date : " + date);
        System.out.println("time : " + timeSimpleDateFormatter.format(date));
        System.out.println("day : " + daySimpleDateFormatter.format(date));
        System.out.println("dateTime : " + dateSimpleDateFormat.format(date));

运行结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/68e3fb18aa7c49bd8ae1a6d60bae9938.png

总结:Date原始数据可读性差,需要用到SimpleDateformat进行格式化。能获取年、月、日但是都被弃用了。

java.util.Calendar

由于Date设计的不妥,后面由Calnedar逐步替代。

        Calendar instance = Calendar.getInstance();
        /**
        * 常见用法,获取年月日
        */
        int year = instance.get(Calendar.YEAR);
        int month = instance.get(Calendar.MONTH);
        int day = instance.get(Calendar.DAY_OF_MONTH);

        Date date = instance.getTime();
        System.out.println(instance.toInstant());
        System.out.println("time : " + timeSimpleDateFormatter.format(date));
        System.out.println("day : " + daySimpleDateFormatter.format(date));
        System.out.println("dateTime : " + dateSimpleDateFormat.format(date));

运行结果如下:
在这里插入图片描述
总结:虽然较Date设计更合理,功能更完善,但是性能差,代码冗余,仍旧不推荐使用。

Java8推荐的时间获取方法

LocalDate获取日期

        LocalDate date = LocalDate.now();
        System.out.println("date " + date);
        System.out.println("format " + dayFormatter.format(date));

运行结果如下:
在这里插入图片描述
同时已经提供了很多易读易用的方法:
在这里插入图片描述

LocalTime获取时间


        LocalTime time = LocalTime.now();
        System.out.println("time " + time);
        System.out.println("format " + timeFormatter.format(time));

运行结果如下:
在这里插入图片描述
相对于格式化,多了一个毫秒的数值。

同样提供了很多对时间易读易用的函数:
在这里插入图片描述

LocalDateTime 获取时间和日期

        LocalDateTime datetime = LocalDateTime.now();
        System.out.println(datetime);

        datetime = LocalDateTime.of(date,time);
        System.out.println(datetime);
        System.out.println("format " + dateTimeFormatter.format(datetime));

运行结果如下:
在这里插入图片描述
同样提供了易读易用的方法:
在这里插入图片描述
总结:Java8中的时间函数更完善、性能更好、同时在格式化的时候使用的DateTimeFormatter不会出现线程安全问题,而SimpleDateFormatter会出现安全问题;

后面在补上Java8时间函数怎么对接Mybatis

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

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

相关文章

09_MySQL的子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后…

【Node.js】MySQL数据库

数据库数据库的基本概念什么是数据库常见的数据库和分类数据库的数据组织结构实际开发中库,表,行,字段的关系MySQL相关的软件MySQL Workbench创建数据库创建数据表设计表字段字段的特殊标识向表中插入数据使用SQL管理数据库什么是SQLSQL能做什…

springcloud3 Nacos中namespace和group,dataId的联系

一 Namespance和group和dataId的联系 1.1 3者之间的联系 话不多说,上答案,如下图: namespance用于区分部署环境,group和dataId用于逻辑上区分两个目标对象。 二 案例:实现读取注册中心的不同环境下的配置文件 …

IDEA中Maven报错:Failed to read artifact descriptor for解决方案

导入spark-core依赖报错 Failed to read artifact descriptor for com.esotericsoftware:kryo-shaded:jar: 图片忘记报错了,拿一张网友的图,现象是spark-core成功导入,但是pom文件中project处报错 这个原因是因为maven版本不匹配&#xff0c…

金三银四,助力你的大厂梦,2023年软件测试经典面试真题(2)(共3篇)

前言 金三银四即将到来,相信很多小伙伴要面临面试,一直想着说分享一些软件测试的面试题,这段时间做了一些收集和整理,下面共有三篇经典面试题,大家可以试着做一下,答案附在后面,希望能帮助到大…

eNSP实验:vlan 划分与访问

实验目的 交换机未划分 vlan,直接相连的两个终端能否 ping 通? 不同 vlan 中的两个终端能否可以 ping 通? 相同 vlan 但不连接至同一个交换机的两个终端,能否与 ping通? 实验步骤 设计网络拓扑 交换机选用 S5700…

电子技术——AB类输出阶的偏置

电子技术——AB类输出阶的偏置 下面我们介绍两种AB类输出阶的偏置的方法。 使用二极管偏置 下图展示了电流源 III 加两个二极管的偏置方法: 因为输出阶需要大功率输出,因此输出推挽三极管可能是几何体积比较大的晶体管。对于二极管来说,并不…

LeetCode 79. 单词搜索

LeetCode 79. 单词搜索 难度:middle\color{orange}{middle}middle 题目描述 给定一个 mxnm x nmxn 二维字符网格 boardboardboard 和一个字符串单词 wordwordword 。如果 wordwordword 存在于网格中,返回 truetruetrue ;否则,返…

3月来了,给自己做一个简单的nodejs后端技术总结

3月来了,给自己做一个简单的nodejs后端技术总结 3月来了,给自己做一个简单的nodejs后端技术总结 完全重构 数据库切换迁移Why Nestjs?prisma or typeorm?serverless 函数辅助GraphQLGithub Action CI/CD部署 tensorflow 模型 我又滚回来写文章了,从去年11月底…

用canvas画一个炫酷的粒子动画倒计时

前言 😆 这是一篇踩在活动尾声的文章,主要是之前在摸鱼社群里有人发了个粒子动画的特效视频,想着研究研究写一篇文章出来看看,结果这一下子就研究了半个多月。 😂 下面就把研究成果通过文字的形式展现出来吧&#xf…

Compact 调优实例

1.问题描述 10月27号,用户反馈 g_feature 资源组的回溯任务在夜间的耗时比较大。在00:49——04:16期间,查询的平均耗时是大于100ms的。 2. 分析原因 根据问题现象,在夜间的耗时比较大,白天的耗时比较小,首先想到的就…

【电子通识】为什么产品出厂前要进行高温老化?

产品在出厂时往往会进行高温老化测试,那出厂前高温老化的目的是什么?可靠性定义首先我们要知道产品的可靠性,可靠性的定义是指产品在规定的条件下能够正常运行达到产品寿命的概率。如下公式表示,其中,λ表示固有故障率…

一起了解井用污水采样器——让井下污水采样更人性化

井用采样器的工作环境比较特殊。比如:雨水管网、窨井、污水井、排污口、下水道,海洋、河流、沟渠等恶劣狭小的环境。这就要求采样设备小巧灵活,方便环境检测执法检查人员在排污井、检查井、雨水管网等特殊环境中进行水质采样。 **井用采样器主…

二叉树路径查找

题目描述:给定一棵二叉树(结构如下),其中每个节点值为整数。给定一个值 K,求所有满足如下条件的路径并将路径上节点的值打印出来: 1、路径方向必须向下,即只能从父节点指向子节点 2、路径并不是必须从根节点开始或在叶…

21- 神经网络模型_超参数搜索 (TensorFlow系列) (深度学习)

知识要点 fetch_california_housing:加利福尼亚的房价数据,总计20640个样本,每个样本8个属性表示,以及房价作为target 超参数搜索的方式: 网格搜索, 随机搜索, 遗传算法搜索, 启发式搜索 函数式添加神经网络: model.add(keras.l…

Python可视化界面编程入门

Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplication #导入两个类来进行程序界面编程if __name__"__main__":#创建一个Appl…

探索ChatGPT背后的网络基础设施

ChatGPT是OpenAI公司开发的一款聊天机器人应用,自2022年11月推出以来以迅雷不及掩耳盗铃之势火爆全球。ChatGPT不仅可以模仿人类对话,还可以创建音乐、电视剧、童话故事和学生论文,甚至是编写和调试计算机程序。 截至2023年1月,C…

如何打造自己的小程序生态?

2021 年全网小程序数量就已超 700 万,从微信开始,到其他各大平台,如抖音、支付宝,小程序发展迅猛,2023年小程序仍有着巨大的发展潜力。 现在。人们逐渐发现,日常的生活、出行、购物各个方面都越来越离不开…

CAN工具-VSpy(ValueCAN) - Panel面板

在介绍CANoe工具的时候,有介绍过Panel面板的使用,同样,在VSpy软件工具中,也有同类型的工具可供使用 - Graphical Panels,同样也能提供一个控制面板,然后我们通过连接信号实现不同的控件,已达到我…

极验4参数分析

目标链接 aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v接口分析 开发者人员工具进行抓包,刷新页面,抓到了一个名为 load?captcha_idxxx 的包,Query String Parameters 包含了一些参数 captcha_id:验证码 id,固定值&#xff0c…