当前位置:首页 » 《关注互联网》 » 正文

详细分析Java中的Date类以及格式转换

4 人参与  2024年05月12日 10:48  分类 : 《关注互联网》  评论

点击全文阅读


目录

前言1. 基本知识2. 格式化输出3. 格式转换

前言

记录这篇文章的缘由,主要是涉及一个格式转换,对此深挖了这个类

在Java中,Date类是用于表示日期和时间的类。

位于java.util包中,是Java平台中处理日期和时间的基本类之一。然而,需要注意的是,Date类存在一些问题:

其中之一是它不支持国际化,而且在Java 8及以后版本中,推荐使用java.time包中的新日期和时间API(如LocalDate、LocalTime、LocalDateTime等)来替代Date类。

1. 基本知识

一、 以下是Date类的一些基本概念和作用:

概念: Date类用于表示一个特定的时间点,精确到毫秒级别。
存储的是从1970年1月1日午夜开始的毫秒数,这被称为“Unix时间”或“Epoch时间”。

作用: Date类主要用于获取、表示和操作日期和时间。
用于记录事件发生的时间、计算时间间隔等。

二、常用的Date类API包括:

构造方法获取时间设置时间时间比较格式转换
Date(): 创建一个表示当前时间的Date对象。

Date(long date): 根据指定的毫秒数创建一个Date对象。
getTime(): 返回从1970年1月1日00:00:00以来的毫秒数。setTime(long time): 设置Date对象的时间。before(Date when): 判断当前日期是否在指定日期之前。

after(Date when): 判断当前日期是否在指定日期之后。

equals(Object obj): 判断两个日期是否相等。
toString(): 将日期对象转换为字符串。

toLocaleString(): 将日期对象转换为本地化的字符串。

toGMTString(): 将日期对象转换为GMT时间字符串。

然而,由于Date类的一些缺陷,建议在新的应用中使用java.time包中的日期和时间API,以便更好地处理日期和时间的操作。

2. 格式化输出

一般Date格式化输出,会配合SimpleDateFormat这个类!

主要的参数如下:

字母含义
y
M年中的月份
w年中的周数
W月份中的周数
D年中的天数
d月份中的天数
F月份中的星期
E星期中的天数
aAm/pm 标记
H一天中的小时数(0-23)
k一天中的小时数(1-24)
Kam/pm 中的小时数(0-11)
ham/pm 中的小时数(1-12)
m小时中的分钟数
s分钟中的秒数
S毫秒数
z时区

例子如下:

import java.text.SimpleDateFormat;import java.util.Date;public class datetest {    public static void main(String[] args) {        Date now = new Date();        SimpleDateFormat sd=new SimpleDateFormat("现在时间: "+"yyyy 年 MM 月 dd 日 E HH 点 mm 分 ss 秒");        System.out.println(sd.format(now));        sd = new SimpleDateFormat("一年中的第 D 天,一个月中的第 F 个星期 ,一年中的第 w 个星期,一个月中的第 W 个星期");        System.out.println(sd.format(now));    }}

截图如下:

在这里插入图片描述

特别注意到是12小时和24小时的规则不大一样:

import java.text.SimpleDateFormat;import java.util.Date;public class datetest {    public static void main(String[] args) {        Date now = new Date();        // yyyy-MM-dd hh:mm:ss 12小时        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //小写是12小时        System.out.println(sdf.format(now));        // yyy-MM-dd HH:mm:ss  24小时        sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//大写是24小时的        System.out.println(sdf.format(now));    }}

截图如下:(由于时间点还没过下午,将就下~)

在这里插入图片描述

3. 格式转换

常用的转换主要是Date转换为String,或者String转换为时间格式!

一、Date转换为String:

public class datetest {    public static void main(String[] args) {        Date now = new Date();        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");        System.out.println(sd.format(now));        // 自定义格式        sd = new SimpleDateFormat("M-dd");        System.out.println(sd.format(now));    }}

截图如下:

在这里插入图片描述

二、String转换为Date:

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class datetest {    public static void main(String[] args) {        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");        String now = "2024-01-21";        try {            // 转换为Date类型            Date date = sd.parse(now);            System.out.println(date);                        // 输出long的格式            long time = date.getTime();            System.out.println(time);                        // long格式之后转换为String来表示            System.out.println(sd.format(time));        } catch (ParseException e) {            throw new RuntimeException(e);        }    }}

截图如下:

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/107370.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 奈何春风不曾渡我虐心反转_童烟沈叙白陆依在线看_小说后续在线阅读_无删减免费完结_
  • 鹿雪附加完整在线阅读(小祖宗她带着双宝闹翻天)最近更新列表
  • 你要战功我给你,妖兽入侵你哭啥高质量好文叶天凌筱完本_你要战功我给你,妖兽入侵你哭啥高质量好文(叶天凌筱)
  • 夫君和小三霸占了我的将军府,我杀疯了阅读_雪儿谭绍木兰全集_小说后续在线阅读_无删减免费完结_
  • 鹿溪小说(鹿溪)终章+番外(穿进恐怖游戏后,我和反派HE了)一口气阅读
  • 完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所列表_完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所(娄墨霆宋佑轩)
  • 你活着,却死在我等你的第三年后续+番外_谨言佳佳温以宁全集_小说后续在线阅读_无删减免费完结_
  • 相思溺于夏时雨小说(裴景澈初念可)章节目录+起始篇章(相思溺于夏时雨)全章无套路在线
  • 未婚夫重生归来叫停手术,把剥开肚子的我困在手术台上40分钟(裴临渊阮离歌)
  • 完结文离婚是你提,净身出户你又哭什么精彩分享列表_完结文离婚是你提,净身出户你又哭什么精彩分享(苏铭余素伊)
  • 全书浏览哥哥重生救我,我带队灭了组织!(陈致远陈知韫)_哥哥重生救我,我带队灭了组织!(陈致远陈知韫)全书结局
  • 全文算命赚功德,我直接飞升成仙(楚天河林风)列表_全文算命赚功德,我直接飞升成仙

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1