当前位置: 首页 > news >正文

Java中的日期时间

JDK8之前常用的日期时间类

  1. System.currentTimeMillis():获取当前毫秒数(long类型)

  2. java.util.Date:通用Date类

    import java.util.Date;Date date = new Date(); // 空参构造器
    System.out.println(date.getTime()); // 获取当前时间毫秒数 1730619267197
    System.out.println(date.toString()); // 返回日期的字符串 Sun Nov 03 15:34:27 CST 2024
    Date date1 = new Date(1232324325421L); // 带参构造器
    System.out.println(date1.getTime()); // 获取当前时间毫秒数 1232324325421
    System.out.println(date1.toString()); // 返回日期的字符串 Mon Jan 19 08:18:45 CST 2009
    
  3. java.sql.Date:sql中的Date类

    import java.sql.Date;Date date = new Date(1232324325421L);
    System.out.println(date.getTime()); // 获取当前时间毫秒数 1232324325421
    System.out.println(date.toString()); // 返回日期的字符串 2009-01-19
    
  4. SimpleDateFormat(String formatStr):用于将java.util.Date类的日期格式化和解析

    import java.text.SimpleDateFormat;
    import java.util.Date;// 默认格式化形式
    SimpleDateFormat sdf = new SimpleDateFormat();
    String strDate = sdf.format(new Date()); // 格式化日期
    System.out.println(strDate); // 2024/11/3 下午3:43
    Date date = sdf.parse(strDate);
    System.out.println(date.toString()); // Sun Nov 03 15:43:00 CST 2024// 指定格式化形式
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String strDate1 = sdf1.format(new Date());
    System.out.println(strDate1); // 2024-11-03 16:05:58
    Date date1 = sdf1.parse(strDate1);
    System.out.println(date1.toString()); // Sun Nov 03 16:05:58 CST 2024
    
  5. Calendar日历类
    Calendar是一个抽象类,所以不能创建Calendar的对象,但提供了一个getInstace()可以获取到其子类的对象

    Calendar calendar = Calendar.getInstance();
    // 等同于
    Calendar calendar1 = new GregorianCalendar();
    

    常用方法
    get(int field):获取

    Calendar calendar = Calendar.getInstance();
    int num = calendar.get(Calendar.DAY_OF_YEAR); // 获取今天是今年的第几天
    int num1 = calendar.get(Calendar.DAY_OF_MONTH); // 获取今天是这个月的第几天
    System.out.println(num); // 308
    System.out.println(num1); // 3
    

    set(int field, xx):设置

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_MONTH, 20);
    int num = calendar.get(Calendar.DAY_OF_MONTH);
    System.out.println(num); // 20
    

    add(int filed, xx):在当前基础上增加xx

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_MONTH, 20);
    calendar.add(Calendar.DAY_OF_MONTH, 5); // + 5 天
    int num = calendar.get(Calendar.DAY_OF_MONTH);
    System.out.println(num); // 25
    calendar.add(Calendar.DAY_OF_MONTH, -4); // - 4 天
    int num1 = calendar.get(Calendar.DAY_OF_MONTH);
    System.out.println(num1); // 21
    

    getTime():将日历对象转为Date对象

    Calendar calendar = Calendar.getInstance();
    Date date = calendar.getTime();
    System.out.println(date); // Sun Nov 03 16:41:26 CST 2024
    

    setTime(Date date):重置日历对象

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_MONTH, 1);
    Date date = calendar.getTime();
    System.out.println(date); // Fri Nov 01 16:45:44 CST 2024
    calendar.setTime(new Date());
    Date date1 = calendar.getTime();
    System.out.println(date1); // Sun Nov 03 16:45:44 CST 2024
    

JDK8新增的日期时间类

  1. LocalDateLocalTimeLocalDateTime
    ① 实例化日期对象(当前时间):now()

    LocalDate date1 = LocalDate.now();
    LocalTime date2 = LocalTime.now();
    LocalDateTime date3 = LocalDateTime.now();
    System.out.println(date1); // 2024-11-03
    System.out.println(date2); // 19:35:16.405199400
    System.out.println(date3); // 2024-11-03T19:35:16.405199400

    ② 实例化日期对象(指定时间): of()

    LocalDate date1 = LocalDate.of(2024, 12, 12);
    System.out.println(date1); // 2024-12-12
    LocalTime date2 = LocalTime.of(19, 41, 55);
    System.out.println(date2); // 19:41:55
    LocalDateTime date3 = LocalDateTime.of(2024, 12, 12, 19, 41, 55);
    System.out.println(date3); // 2024-12-12T19:41:55
    

    ③ 获取:getxxx()

    LocalDate date1 = LocalDate.now();
    int year = date1.getYear();
    int month = date1.getMonthValue();
    int day = date1.getDayOfMonth();
    System.out.println(year + "-" + month + "-" + day);
    

    ④ 修改:withxxx()

    LocalDate date1 = LocalDate.now();
    LocalDate date2 = date1.withYear(2026).withMonth(3).withDayOfMonth(8);
    System.out.println(date1); // 2024-11-3
    System.out.println(date2); // 2026-03-08
    

    ⑤ 增加:plusxxx()

    LocalDate date1 = LocalDate.now();
    LocalDate date2 = date1.plusYears(3).plusMonths(1).plusDays(2);
    System.out.println(date1); // 2024-11-3
    System.out.println(date2); // 2027-12-05
    

    ⑥ 减少: minusxxx()

    LocalDate date1 = LocalDate.now();
    LocalDate date2 = date1.minusYears(3).minusMonths(1).minusDays(2);
    System.out.println(date1); // 2024-11-3
    System.out.println(date2); // 2021-10-01
    
  2. Instant:与Date类似

    Instant instant1 = Instant.now(); // 获取当前时间的时间戳(差8个时区)
    OffsetDateTime odt = instant1.atOffset(ZoneOffset.ofHours(8));
    System.out.println(instant1); // 伦敦时间:2024-11-03T12:21:05.092270500Z
    System.out.println(odt); // 北京时间:2024-11-03T20:21:05.092270500+08:00
    Instant instant2 = Instant.ofEpochMilli(1234234333335L); // 设置指定时间的日期对象
    System.out.println(instant1.toEpochMilli()); // 获取日期对象的时间戳:1730636465092 
    
  3. DateTimeFormatter:针对LocalDate、LocalTime、LocalDateTime日期的格式化和解析

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime date1 = LocalDateTime.now();
    String strDate = dtf.format(date1);
    System.out.println(strDate); // 2024-11-03 21:01:39
    LocalDateTime date2 = LocalDateTime.from(dtf.parse(strDate)); // 需要使用LocalDateTime.from()转成LocalDateTime对象
    System.out.println(date2); // 2024-11-03T21:01:39
    

相关文章:

Java中的日期时间

JDK8之前常用的日期时间类 System.currentTimeMillis():获取当前毫秒数(long类型) java.util.Date:通用Date类 import java.util.Date;Date date new Date(); // 空参构造器 System.out.println(date.getTime()); // 获取当前时…...

位置编码的表示

位置编码的表示位置编码的表示位置编码的表示位置编码的表示位置编码的表示...

0,国产FPGA(紫光同创)-新建PDS工程

国产FPGA正在蓬勃发展,紫光同创FPGA是大家竞赛时经常遇到的一款国产FPGA,本专栏从IP核开始一直到后续图像处理等。 开发板:盘古50K标准板 1,新建PDS工程 点击File(1),然后是New Projects&#…...

c++联合

结构体与联合体的区别 结构体(struct)中所有变量是“共存”的——优点是“有容乃大”,全面;缺点是struct内存空间的分配是粗放的,不管用不用,全分配。 而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”&#xff…...

Edit Data. Create Cell Editors. Validate User Input 编辑数据。创建 Cell Editors。验证用户输入

Goto Data Grid 数据网格 Edit Data. Create Cell Editors. Validate User Input 编辑数据。创建 Cell Editors。验证用户输入 Get and Modify Cell Values in Code 在代码中获取和修改单元格值 仅当 Grid 及其列已完全初始化时,才使用以下方法。如果需要在表单仍…...

Java 文件操作与IO流

文件 文件有两个概念,在广义来看就是操作系统上对硬件和软件资源抽象为文件。 在侠义上来看,就是我们保存在硬盘上的文件 在这里我们讨论的是狭义的文件,在外面的硬盘上的文件细分又可以分为二进制文件和文本文件,文本文件可以通…...

探索开源MiniMind项目:让大语言模型不再神秘(1)

简介: 声明:本人非此项目作者,仅仅是探索项目,分享项目。如有不妥,请联系我删除! 原项目地址:GitHub - jingyaogong/minimind: 「大模型」3小时完全从0训练26M的小参数GPT,个人显卡即…...

Android 大疆面经

Android 大疆面经 文章目录 Android 大疆面经一面 一面 自我介绍问项目聊了10分钟View的绘制流程MVC,MVP,MVVM的区别view和viewmodel的通信,除了databing还有其他的方式面向对象和面向过程的区别工厂模式和策略模式,哪些框架使用…...

【2024-10-31-2024-11-03】LeetCode刷题——python语法基础题

📝前言说明: ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,主要跟随B站作者灵茶山的视频进行学习,专栏中一篇文章为B站对应的一个视频 题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。 ●文章中的理…...

【算法】二分查找

目录 一、概念 二、思路 三、边界问题 一、概念 在一本书中查找某一页,我们总是倾向于先翻到整本书的中间,然后根据当前页数判断我们想要找的页在当前页的左半本中还是右半本中,接着继续翻到剩下半本书的中间...... 这就是二分查找思想在…...

第十五章 Vue工程化开发及Vue CLI脚手架

目录 一、引言 二、Vue CLI 基本介绍 三、安装Vue CLI 3.1. 安装npm和yarn 3.2. 安装Vue CLI 3.3. 查看 Vue 版本 四、创建启动工程 4.1. 创建项目架子 4.2. 启动工程 五、脚手架目录文件介绍 六、核心文件讲解 6.1. index.html 6.2. main.js 6.3. App.vue 一、…...

【Grafana】Grafana 基础入门

Grafana 简介 什么是Grafana Grafana 是一跨平台的开源的可视化分析工具,是目前网络架构和应用分析中最流行的时序数据展示工具,主要用于大规模指标数据的可视化展示。 它是用Go语言开发,可以做数据监控和数据统计,带有告警功能…...

如何获取页面上所有input框

要获取页面上所有的<input>框&#xff0c;你可以使用JavaScript。这通常可以通过查询DOM&#xff08;文档对象模型&#xff09;来实现&#xff0c;有几种方法可以做到这一点&#xff0c;包括使用document.querySelectorAll、document.getElementsByTagName或document.get…...

0-ARM Linux驱动开发-字符设备

一、字符设备概述 Linux 系统中&#xff0c;设备被分为字符设备、块设备和网络设备等。字符设备以字节流的方式进行数据传输&#xff0c;数据的访问是按顺序的&#xff0c;一个字节一个字节地进行读取和写入操作&#xff0c;没有缓冲区。例如&#xff0c;终端&#xff08;/dev…...

使用 Faster Whisper 和 Gradio 实现实时语音转文字

随着人工智能技术的进步&#xff0c;语音识别已经成为最热门的研究领域之一。如何实现高效、准确的实时语音转文字功能&#xff0c;是许多开发者关注的重点。本文将介绍如何使用 Faster Whisper 和 Gradio 这两个强大工具&#xff0c;快速构建一个实时语音转文字应用。 Faster…...

redis v6.0.16 安装 基于Ubuntu 22.04

redis安装 基于Ubuntu 22.04 本文演示如何在ubuntu22.04下&#xff0c;安装redis v6.0.16&#xff0c;并配置测试远程访问。 Step1 更新环境 sudo apt updateStep2 安装redis sudo apt install redis-server -yStep3 启动 sudo systemctl restart redissudo systemctl sta…...

Milvus - 内存索引类型详解

1. 背景概述 在大规模数据处理和向量相似性搜索场景中&#xff0c;内存索引的使用显著提升了查询速度和效率。Milvus 提供了多种内存索引类型&#xff0c;以满足不同场景下的性能需求。本文将介绍 Milvus 支持的各种内存索引类型及其适用场景、配置参数和使用方法。 2. 为什么…...

【STM32】按键控制LED 光敏传感器控制蜂鸣器

文章目录 前置知识按键介绍传感器模块硬件电路按键硬件电路传感器模块硬件电路 C语言数据类型在Keil中的对应写法C语言枚举 按键控制LED接线图Hardware文件夹&#xff08;模块化编程&#xff09;LED驱动程序封装Key(按键)驱动程序封装 main.c源文件 光敏传感器控制蜂鸣器接线图…...

flutter-防抖

在Flutter中实现输入框的防抖功能&#xff0c;通常是为了减少用户输入时触发的事件数量&#xff0c;特别是在进行网络请求时。防抖&#xff08;Debounce&#xff09;意味着在用户停止输入一段时间后才触发事件。以下是实现输入框防抖的一种方法&#xff1a; 1、使用Debounce类…...

什么是贪心算法

贪心算法&#xff08;Greedy Algorithm&#xff09;是一种逐步构建解决方案的方法&#xff0c;在每一步选择中都作出局部最优的选择&#xff0c;希望最终能够获得全局最优解。贪心算法的核心思想是贪心选择性质&#xff0c;即每次选择当前看来最好的解&#xff0c;不考虑未来可…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

WEB3全栈开发——面试专业技能点P4数据库

一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库&#xff0c;基于 mysql 库改进而来&#xff0c;具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点&#xff1a; 支持 Promise / async-await&#xf…...