Java 日期处理

主要从以下三方面讲解:

  • java.util 包提供了 Date 类来封装当前的日期和时间。
  • java.util 包提供了 Calendar 类用来设置和获取日期数据的特定部分。
  • java.text 包提供了 SimpleDateFormat 类来格式化日期的格式。

Date类

Date类的构造函数

Date 类主要提供了两个构造函数(其他的均过时了,有@Deprecated修饰):

//使用当前日期和时间来初始化对象
public Date() {this(System.currentTimeMillis());
}//date参数是从1970年1月1日起的毫秒数
public Date(long date) {fastTime = date;
}

Date类的方法

方法描述
boolean after(Date date)若当调用此方法的Date对象在指定日期之后返回true,否则返回false。
boolean before(Date date)若当调用此方法的Date对象在指定日期之前返回true,否则返回false。
int compareTo(Date date) (掌握)比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
boolean equals(Object date)当调用此方法的Date对象和指定日期相等时候返回true,否则返回false。
long getTime( )返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
void setTime(long time)用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。
int hashCode( )返回此对象的哈希码值。
String toString( )把此 Date 对象转换为以下形式输出
// “EEE MMM dd HH:mm:ss zzz yyyy”;
Object clone( )返回此对象的副本。

SimpleDateFormat 类

我们一般用它来进行日期的格式化和分析。直接上代码:(掌握)

Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("G yyyy-MM-dd HH:mm:ss.SSS");
String str = sdf.format(now);
System.out.println(str);
String parseStr = "公元 2024-01-22 16:58:33.126";
try {Date date = sdf.parse(parseStr);System.out.println(date);
} catch (ParseException e) {throw new RuntimeException(e);
}

输出如下:

公元 2024-01-22 17:01:27.194
Mon Jan 22 16:58:33 CST 2024

日期和时间的格式化编码

时间模式字符串用来指定时间格式。在此模式中,所有的 ASCII 字母被保留为模式字母,定义如下:

字母描述示例
G纪元标记公元
y四位年份2023
M月份July or 07
d一个月的日期10
hA.M./P.M. (1~12)格式小时11
H一天中的小时 (0~23)21
m分钟数23
s秒数56
S毫秒数234
E星期几Tuesday
D一年中的日子360
w一年中第几周20
W一个月中第几周2
aA.M./P.M. 标记PM
k一天中的小时(1~24)24
KA.M./P.M. (0~11)格式小时10
z时区CST

Calendar类

当我们需要设置或获取日期数据的特定部分时,需要进行特定部分的加减时,可以使用Calendar 类。

Calendar对象的创建

Calendar c = Calendar.getInstance();//默认是当前日期

Calenda****类对象字段类型

常量描述
Calendar.YEAR年份
Calendar.MONTH月份
Calendar.DATE日期
Calendar.DAY_OF_MONTH日期,和上面的字段意义完全相同
Calendar.HOUR12小时制的小时
Calendar.HOUR_OF_DAY24小时制的小时
Calendar.MINUTE分钟
Calendar.SECOND
Calendar.DAY_OF_WEEK星期几

Calendar类常用方法

方法描述
public final void set(int year, int month, int date)通过年月日参数设置,注意month值的范围,0~11,即0代表1月
public final void set(int year, int month, int date, int hourOfDay, int minute)通过年月日时分设置
public final void set(int year, int month, int date, int hourOfDay, int minute, int second)通过年月日时分秒设置
public void set(int field, int value)利用字段类型设置对应的值
public int get(int field)利用字段类型获取对应的值
public void setTimeInMillis(long millis)通过时间戳设置时间
public long getTimeInMillis()获取当前对象的时间戳
abstract public void add(int field, int amount);
通过debug发现,该抽象方法由GregorianCalendar中的方法实现:
public void add(int field, int amount)
在指定字段类型上加减时间。
amount 为正数即为加,为负数即为减。

其他

实际的项目中,会经常用到 Instant 、LocalDate、LocalTime、LocalDateTime,这几个类是java1.8 新增的,我们放在后续详解。

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

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

相关文章

小程序学习-21

目前小程序分包大小有以下限制: 整个小程序所有分包大小不超过 20M单个分包/主包大小不能超过 2M 独立分包:"independent": true

docker compose安装milvus

下载对应版本的milvus-standalone-docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.3.5/milvus-standalone-docker-compose.yml重新命令为docker-compose.yml mv milvus-standalone-docker-compose.yml docker-compose.yml启动milvus doc…

记一次 stackoverflowerror 线上排查过程

一.线上 stackOverFlowError xxx日,突然收到线上日志关键字频繁告警 classCastException.从字面上的报警来看,仅仅是类型转换异常,查看细则发现其实是 stackOverFlowError.很多同学面试的时候总会被问到有没有遇到过线上stackOverFlowError?有么有遇到栈溢出?具体栈溢出怎么来…

postman测试导入文件

01 上传文件参数 1.选择请求方式 选择post请求方式,输入请求地址 2.填写Headers Key:Content-Type ; Value:multipart/form-data 如下图 3.填写body 选择form-data,key选择file类型后value会出现按钮&#xff0…

(十二)Head first design patterns代理模式(c++)

代理模式 代理模式:创建一个proxy对象,并为这个对象提供替身或者占位符以对这个对象进行控制。 典型例子:智能指针... 例子:比如说有一个talk接口,所有的people需要实现talk接口。但有些人有唱歌技能。不能在talk接…

表单的总数据为什么可以写成一个空对象,不用具体的写表单中绑定的值,vue3

<el-form :model"form" label-width"120px"><el-form-item label"Activity name"><el-input v-model"form.name" /></el-form-item> </el-form> const form ref({})from为空对象 在v-model里写form…

verde生成网格坐标

文章目录 网格坐标区域调整 Verde是Python用于地理空间数据处理的一个库&#xff0c;由于采用了一些机器学习的方法&#xff0c;所以除了科学计算三件套之外&#xff0c;还需要基于sklearn模块。考虑到依赖关系&#xff0c;这里比较推荐用conda安装。 conda install verde --c…

分布式websocket即时通信(IM)系统保证消息可靠性【第八期】

b站上面本期视频版本&#xff0c;观看视频食用更佳&#xff01;点击即可跳转,找不到视频可以直接搜索我 目前叫 呆呆呆呆梦 目前已经写的文章有。并且有对应视频版本。 git项目地址 【IM即时通信系统&#xff08;企聊聊&#xff09;】点击可跳转 sprinboot单体项目升级成sprin…

Windows 10中的驱动程序与device guard的兼容性

文章目录 Windows 10中的驱动程序与device guard的兼容性windows的device guard是什么如何构建兼容的驱动程序如何验证驱动程序的兼容性驱动程序验证程序兼容性检查启用基于虚拟化的隔离代码完整性HLK测试&#xff08;桌面和服务器&#xff09;Device Guard准备工具DGReadiness…

VsCode容器开发 - VsCode连接远程服务器上的docker

VsCode容器开发 - VsCode连接远程服务器上的docker 前言 之前在服务器上的Docker内开发&#xff0c;文件编辑起来就很不爽。不如使用VsCode直接打开远程服务器上的Docker&#xff0c;这样就能在VsCode里直接无缝编辑Docker里的文件了。 但是百度和必应得到的中文结果都很奇葩…

openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert

文章目录 openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert概述笔记END openssl3.2/test/certs - 013 - primary server-EKU root: sroot-cert 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_013.txt // \not…

Java 实现二叉排序树(BST)

文章目录 介绍实现先定义一个节点树测试 总结 介绍 二叉排序树&#xff08;Binary Search Tree&#xff0c;简称BST&#xff09;是一种特殊的二叉树&#xff0c;其中每个节点的值都大于其左子树的任意节点值&#xff0c;而小于其右子树的任意节点值。 它具有以下特点&#xf…

笔记-孙子兵法-第三篇-谋攻(2)-集中优势兵力;将在外君命有所不受;知彼知己,百战不殆;

笔记-From 《华杉讲透孙子兵法》和《兵以诈立&#xff0c;我读孙子》 目录 第三篇-谋攻&#xff08;2&#xff09; 原文&#xff1a; Ankie的笔记-集中优势兵力&#xff1b;将在外君命有所不受&#xff1b;知彼知己&#xff0c;百战不殆&#xff1b; 第三篇-谋攻&#xff08…

有关HTML知识点汇总总结

一、VScode常用快捷键列表 代码格式化&#xff1a;ShiftAltF向上或向下移动一行&#xff1a;AltUp或AltDown快速复制一行代码&#xff1a;ShiftAltUp或ShiftAltDown快速保存&#xff1a;CtrlS快速查找&#xff1a;CtrlF快速替换&#xff1a;CtrlH 二、HTML系列总结 1、什么是H…

用flinkcdc debezium来捕获数据库的删除内容

我在用flinkcdc把数据从sqlserver写到doris 正常情况下sqlserver有删除数据&#xff0c;doris是能捕获到并很快同步删除的。 但是我现在情况是doris做为数仓&#xff0c;数据写到ods&#xff0c;ods的数据还会通过flink计算后写入dwd层&#xff0c;所以此时ods的数据是删除了…

“智赋校园 无忧运营”——聚铭网络2024高校客户沙龙圆满举办

随着信息技术的迅猛发展&#xff0c;高校教育行业正经历着一场前所未有的数字化转型。然而&#xff0c;网络安全问题日益凸显&#xff0c;对高校的教学、科研和管理带来了巨大的挑战。在此背景下&#xff0c;聚铭网络特举办了以“智赋校园 无忧运营”为主题的2024高校客户沙龙&…

搜索与图论第六期 最短路问题

前言 最短路问题真的很重要很重要希望大家都能够完全掌握所有最短路算法&#xff01;&#xff01; 一、最短路问题的分类 Dijkstra&#xff1a; Dijkstra算法是一种著名的图算法&#xff0c;主要用于求解有权图中的单源最短路径问题。它由荷兰计算机科学家艾兹赫尔戴克斯特…

Go 入门

1. hello&#xff0c;world hello&#xff0c;world hello&#xff0c;world 经典示例 package main import "fmt" func main() { fmt.Println("你好&#xff0c;Go") } Go 基础知识Go 是编译型的语言Go 的工具链将程序的源文件转变成机器相关的原…

小红书达人推广模式有哪些,品牌投放策略总结

小红书是一个以种草为核心的平台&#xff0c;而品牌方进行种草时&#xff0c;就需要依托达人的力量。今天我们和大家分享下小红书达人推广模式有哪些&#xff0c;品牌投放策略总结&#xff01; 一、小红书达人推广模式有哪些 1. 明星种草 这种小红书达人推广模式&#xff0c;依…

BioXCell--RecombiMAb anti-mouse CTLA-4 (CD152) (LALA-PG)

9D9-CP008单克隆抗体是原始9D9单克隆抗体的重组嵌合型抗体。可变结构域序列与原始9D9克隆号相同&#xff0c;但是恒定区序列已经从小鼠IgG2b变为小鼠IgG2a。9D9-CP008单克隆抗体在Fc片段中也含有LALA-PG突变&#xff0c;使其无法与内源性Fcγ受体结合。 9D9-CP008单克隆抗体能与…