iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java日期相关API的基本操作总结
  • 385
分享到

Java日期相关API的基本操作总结

Java日期API操作Java日期API 2022-11-21 22:11:04 385人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言jdk8之前Date对象的使用格式化日期SimpleDateFORMat类的使用JDK8之后LocalDate 、LocalTime 、LocalDateTime的使用格式化

前言

想大概总结一下日期相关api操作原因是对于日期的操作我们开发中还是很常见的,包括在数据库中保存日期,包括之前String类中对字符串的一些处理开发中都很常见,但大多和javascript以及python中的相关API一致我就没总结,对于日期这块今天还是大概总结一下吧!

JDK8之前

Date对象的使用

对于这个对象,现在他的许多方法已经过时了,我们只需要记住他的两个构造器以及两个方法的使用就行!

那么接下来在案例中看看这两个构造器的使用以及两个方法的使用:

public class Demo {
    public static void main(String[] args) {
        Date date1 = new Date();//构造器一 :创建一个对应当前日期的对象
        System.out.println(date1.toString()); //方法一:输出当前日期
        System.out.println(date1.getTime());  //方法二:输出当前日期对应的时间戳

        Date date2 = new Date(1668749175853L); //构造器二:创建指定毫秒数的Date对象
        System.out.println(date2);
    }
}

但其实这里的Date有两个,这个需要我们注意:

一个是java.util.Date,另一个是他的子类java.sql.Date。第二个很明显是和我们的数据库有关的,数据库中保存日期则需要转换为java.sql.Date类型!

因此,java.util.Date和子类java.sql.Date之间的转换我们也要了解一下!

java.sql.Date 转换为 java.util.Date

这个很简单,由于 java.sql.Date是java.util.Date的子类,因此java.sql.Date转换为java.util.Date只需要进行对象的上转型操作:

java.util.Date date3 = new java.sql.Date(1668749175853L);
System.out.println(date3);

当然也是可以像下面的用getTime()方法转换成时间戳,然后用构造器最后完成转换!

java.util.Date 转换为 java.sql.Date

方式一:和多态有关,还是有局限性!

java.util.Date date3 = new java.sql.Date(1668749175853L); //上转型
java.sql.Date data4 = (java.sql.Date)date3; //下转型

方式二:我们常用的

Date date5 = new Date();
java.sql.Date date6 = new java.sql.Date(date5.getTime());
System.out.println(date6);//只会输出年月日

需要注意的是java.sql.Date只会输出年月日

格式化日期SimpleDateFormat类的使用

上面Date类的输出格式不够国际化看,对于我们来说看着不顺,因此,还需要格式化成我们需要的格式。

package 日期;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        SimpleDateFormat sdf =  new SimpleDateFormat(); //使用默认的构造器

        //格式化:日期 -》字符串
        Date date = new Date();
        String str = sdf.format(date);
        System.out.println(str);

        //解析:字符串 —》日期
        String str2 = "2022/11/18 下午2:30";
        Date date2 = null;
        try {
            date2  = sdf.parse(str2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date2);
    }
}

这个是默认的格式化!

下面写我们常用的格式化:

package 日期;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        //格式化:日期 -》字符串
        Date date = new Date();
        String str = sdf.format(date);
        System.out.println(str);

        //解析:字符串 —》日期
        String str2 = "2022-11-18 02:37:06";
        Date date2 = null;
        try {
            date2  = sdf.parse(str2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date2);
    }
}

JDK8之后

之前说过,jdk8之前的Date大多说构造器已经过时了,因为哪些构造器使用时有偏移量,需要注意。

JDK 1.0中包含了一个 java.util.Date 类,但是它的大多数方法已经在 JDK 1.1引入 Calendar 类之后被弃用了。而 Calendar 并不比 Date 好多少。它们面临的问题是:

  • 可变性:像日期和时间这样的类应该是不可变的。
  • 偏移性:Date 中的年份是从1900开始的,而月份都从0开始。
  • 格式化只对 Date 有用, Calendar 则不行。
  • 此外,它们也不是线程安全的;不能处理闰秒等。

LocalDate 、LocalTime 、LocalDateTime的使用

LocalDate 、LocalTime 、LocalDateTime类是其中较重要的几个类,它们的实例是不可变的对象,分别表示使用 ISO -8601日历系统的日期、时间、日期和时间。它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区相关的信息。下面通过小案例大概看看:

package 日期;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class Demo2 {
    public static void main(String[] args) {
        //now() 获取当前的日期,时间,时间+日期
        LocalDate localDate = LocalDate.now();
        LocalTime localTime = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.now();

        System.out.println(localDate);
        System.out.println(localTime);
        System.out.println(localDateTime);

        System.out.println("---------------------");

        //of() 设置指定的年月日时分秒,没有偏移量
        LocalDateTime localDateTime1 = LocalDateTime.of(2022,10,1,12,12,43);
        System.out.println(localDateTime1);

        System.out.println("---------------------");

        //getXxx() 获取指定的年 月 周等等
        LocalDateTime localDateTime2 = LocalDateTime.now();
        System.out.println(localDateTime2.getMonth());
        System.out.println(localDateTime2.getHour());

        System.out.println("---------------------");

        //withXxx() 设置改变一些时间的值,能体现不可变性,方法返回值是改变后的
        LocalDateTime localDateTime3 = LocalDateTime.now();
        LocalDateTime localDateTime4 = localDateTime3.withHour(5);
        System.out.println(localDateTime3);
        System.out.println(localDateTime4);
    }
}

格式化日期 DateTimeFormatter 类的使用

关于这个类,我只写一下自定义格式化日期,这一点和SimpleDateFormat类的使用没啥区别:

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//格式化:
String str = dateTimeFormatter.format(LocalDateTime.now());
System.out.println(str);
//解析
TemporalAccessor parse = dateTimeFormatter.parse("2022-10-01 12:12:43");
System.out.println(parse);

结语

当然,jdk8之前还有一个Calendar日历类的使用,感兴趣的可以去看看!

到此这篇关于Java日期相关API的基本操作总结的文章就介绍到这了,更多相关Java日期API内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java日期相关API的基本操作总结

本文链接: https://www.lsjlt.com/news/173317.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java日期相关API的基本操作总结
    目录前言JDK8之前Date对象的使用格式化日期SimpleDateFormat类的使用JDK8之后LocalDate 、LocalTime 、LocalDateTime的使用格式化...
    99+
    2022-11-21
    Java日期API操作 Java日期API
  • Java文件基本操作总结
    File文件类 java.io.File是文件和目录的重要类(JDK6及以前是唯一) 目录也使用File类进行表示 File类与操作系统无关,但会受到操作系...
    99+
    2024-04-02
  • C#操作Excel相关方法总结
    C#操作Excel相关方法总结:1. 创建Excel文件:- 使用Microsoft.Office.Interop.Excel库中的Application对象创建一个新的Excel文件。- 使用NPOI或EPPlus等开源库创建一个新的...
    99+
    2023-08-09
    C#
  • Java基础之并发相关知识总结
    目录一、Java并发是什么?二、怎么做?三、分工四、同步五、互斥六、总结一、Java并发是什么? 用学术定义来说就是 并发:同一时间段,多个任务都在执行 (单位时间内不一定同时执行...
    99+
    2024-04-02
  • Java基础之引用相关知识总结
    目录一、引用的定义二、问题三、引用的分类四、应用场景五、源码六、总结一、引用的定义 在JDK 1.2以前,Java中的引用定义很传统:如果reference类型的数据存储的数值代表的...
    99+
    2024-04-02
  • 总结ElasticSearch基本操作!非常详细!
    es下载地址IK分词器下载地址索引创建索引 对比关系型数据库,创建索引就等同创建数据库 PUT请求 http://127.0.0.1:9200/shopping查询索引 GET请求 http://127.0.0.1:9200/...
    99+
    2023-05-14
    ElasticSearch
  • Java基础之线程锁相关知识总结
    一、 synchronized关键字 1.对象锁 a.当使用对象锁的时候,注意要是相同的对象,并且当有线程正在访问对象锁内部的代码的时候,其他线程无法访问。(注意无法访问的范围)。 ...
    99+
    2024-04-02
  • PHP日期函数实现时间相关功能的方法总结
    PHP日期函数是PHP语言中的一个重要特性,可以实现各种时间相关的功能。在本篇文章中,将总结一些常用的PHP日期函数的用法,帮助读者更好地理解和使用它们。一、获取当前时间PHP日期函数中最常用的一个函数就是date()函数,可以获取当前的日...
    99+
    2023-11-20
    格式化日期 比如获取当前日期 计算日期之间的差距等。 获取指定日期的时间戳
  • 总结java 字符串,日期类Date和 Calendar相互转化,以及相关常用方法
    Java中,可以通过以下方法将字符串转换为Date: String dateString = "2023-07-28";DateFormat format = new SimpleDateFormat...
    99+
    2023-10-21
    java 开发语言
  • Java基础之反射技术相关知识总结
    目录一、反射概念二、反射应用场景三、反射更多细节一、反射概念 Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类...
    99+
    2024-04-02
  • SQL Server数据库的基本操作语句总结
    这篇文章主要介绍“SQL Server数据库的基本操作语句总结”,在日常操作中,相信很多人在SQL Server数据库的基本操作语句总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • Python 6种基本变量操作技巧总结
    目录前言变量赋值变量类型对象引用对象身份变量名保留字(关键字)前言 看到这里已经学习了创建各种 Python 数据类型的值。并且显示的值都是文字或常量值。 >>> ...
    99+
    2024-04-02
  • java日期相关类的示例分析
    这篇文章将为大家详细讲解有关java日期相关类的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Date类类 Date 表示特定的瞬间,精确到毫秒。用距离1970年1月1日00:00:00的毫秒...
    99+
    2023-05-30
    java
  • 数据库基本操作语法归纳总结
    关系型数据库:以表作为实体,以主键和外键关系作为联系的一种数据结构。主键:在关系型数据库中,用一个唯一的标识符来标志每一行,这个标识符就是主键。主键有两个特点:非空和不能重复。外键:在关系型数据库中,外键就是用来表达表与表之间的关系、联系,...
    99+
    2023-05-31
    数据库 语法
  • Python一些基本的图像操作和处理总结
    一、Python图像处理PIL库 1.1 转换图像格式 # PIL(Python Imaging Library) from PIL import Image plt.rcPar...
    99+
    2024-04-02
  • Java基础学习之运算符相关知识总结
    1.算术运算符 +表示加法运算符 -表示减法运算符 *表示乘法运算符 /表示除法运算符 %表示取模/取余运算符 package com...
    99+
    2024-04-02
  • Java集合的总体框架相关知识总结
    目录一、集合概述二、集合在开发中的应用三、集合存储的数据四、集合的包五、集合的两大类一、集合概述 数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它的数据。 二、集合在开发...
    99+
    2024-04-02
  • Python基础之变量的相关知识总结
    变量全都是引用 跟其他编程语言不同,Python的变量不是盒子,不会存储数据,它们只是引用,就像标签一样,贴在对象上面。 比如: >>> a = [1, 2, ...
    99+
    2024-04-02
  • Java 数据库连接(JDBC)的相关总结
    目录一、JDBC API 概述 二、JDBC 和 数据库建立连接的过程 2.1、装载驱动程序 2.2、获取数据库连接 2.2.1、Connection:数据库连接对象介绍 2.3、创...
    99+
    2024-04-02
  • Java中的枚举相关知识点总结
    这篇文章主要讲解了“Java中的枚举相关知识点总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的枚举相关知识点总结”吧!Java中的枚举枚举通常是一组相关的常量集合,其他编程语言...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作