首页 > 编程语言 >Java日期类

Java日期类

时间:2022-11-19 11:36:05浏览次数:38  
标签:Java System 日期 LocalDateTime println Calendar now out

第一代日期类


DateSimpleDateFormat。前者获取时间,后者格式化时间形式。这两种类已经过时,但在开发中仍然可能用到。

构造器

Date();
//可以放一个时间戳,例如System.currentTimeMillis()
Date(long time);
//字符串参数应该为特定的日期格式,例如"yyyy-MM-dd"
SimpleDateFormat(String s);

具体的日期设置格式可参看下图

使用SimpleDateFormat对象就可以格式化日期,也可以将一个表示时间的字符串转换为Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String now = sdf.format(new Date());
Date nowtime = sdf.parse(now);

第二代日期类


Calendar类。本身是一个抽象类,这个类的构造器是受保护的,因此Calendar类提供了获取实例的方法。

代码演示如何使用

public class MyCalendar {
    public static void main(String[] args) {
        Calendar now = Calendar.getInstance();
        //这里直接打印now也可以,但显示一堆东西
        System.out.println(now.get(Calendar.YEAR));
        //从0开始计算
        System.out.println(now.get(Calendar.MONTH)+1);
        System.out.println(now.get(Calendar.DAY_OF_MONTH));
        System.out.println(now.get(Calendar.HOUR));
        System.out.println(now.get(Calendar.HOUR_OF_DAY));
        System.out.println(now.get(Calendar.MINUTE));
        System.out.println(now.get(Calendar.SECOND));
    }
}

注意:没有专门的格式Calendar的方法,需要程序员手动获取自动并且拼接。

第三代日期类


上述两种类一般不建议使用,因为它们的值可以被修改,并且线程不安全。而且Date从1900年开始计算。它们也不能处理闰秒(每隔两天,多出一秒)

Java 8新增加了三个类,它们都有各自的分工

  • LocalDate 表示日期
  • LocalTime 表示时间
  • LocalDateTime 表示日期时间

LocalDateTime


属于final类,无法被继承,构造器私有,只能使用静态方法创建对象。实际上,LocalDateTime的构造器包含了LocalDateLocalTime两个参数。

创建对象的静态方法

//获取系统时间
LocalDateTime.now();
//自定义日期
LocalDateTime.of();

获取日期时间各个组成部分的方式

依然使用get系列方法获得

获取对象副本

使用以with开头的方法

往前或往后计算日期

使用对应的plus或minus方法即可

LocalDateTimeLocalDateLocalTime的使用方法几乎相同,不一一赘述。

DateTimeFormatter


这个类可以对上述三种类的对象的表现形式格式化

使用方法

  1. 使用静态方法ofPattern(String s)创建DateTimeFormatter对象,然后使用这个对象的format方法对LocalDateTime对象格式化。
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(dtf.format(now));
//2022-11-19 11:00:00
  1. 使用预定义的静态对象,依然使用format进行格式化
LocalDateTime now = LocalDateTime.now();
System.out.println(DateTimeFormatter.ISO_LOCAL_DATE.format(now));
//2022-11-19

Instant


Instant是一个时间戳,可以将Instant转换为Date,也可以将Date转换为Instant
该类为final类,不可继承,并且构造器私有。

案例演示

Instant instant = Instant.now();
System.out.println(instant);
Date date = Date.from(instant);
System.out.println(date);
Instant toInstant = date.toInstant();

标签:Java,System,日期,LocalDateTime,println,Calendar,now,out
From: https://www.cnblogs.com/run-bit/p/16902043.html

相关文章

  • Java基本运算符
    Java基本运算符算术运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof(关系运算符返回的结果:正确或错误)逻辑运算符:&&,||,!(与、或、非)......
  • Java(Android)与C++之间的Socket通信
    Java与C++之间的Socket通信,对于小的数据量和控制命令,直接可以封装成json或xml格式,进行传输。但对于文件等大数据量传输,必须要将文件封装成帧,每一帧都设定固定大小的缓冲区,逐......
  • JavaScript语法_流程控制语句和JavaScript语法_流程控制语句
    JavaScript语法_流程控制语句://1.语句以;结尾,如果一行只有一条语句则;可以省略(不建议)//1.语句以;结尾,如果一行只有一条语句则可以省略(不建议)leta=3......
  • Java面试汇总----概念题
    1、集合:    Vector、Hashtable是线程安全的集合对象,    ArrayList、Vector对象的底层是由数组实现的,    LinkedList是线程不安全的,底层是由链表实现的,    M......
  • Java开发环境安装与配置(干货详细教程)
    Java开发环境安装与配置(干货详细教程) 对于文章中出现的任何错误请大家批评指出,会及时做出修改! 安装JDKJDK是Java语言的软件开发工具包链接Java中国官网https:/......
  • JavaScript_对象_Global与DOM简单学习
    JavaScript_对象_GlobalGlobal:全局对象1.特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。方法名();2.方法......
  • java: 错误: 无效的源发行版:16 - 解决方案
    在使用idea时遇到java:错误:无效的源发行版:16解决方案将语言级别由16改为8即可......
  • java理论考试范围
    知识集群一:Java编程基础一、java编程基础(1)java起源产生面向对象技术(OOT)面向对象(ObjectOriented,OO)技术引起人们的普遍关注传统的过程化程序设计“程序=算......
  • 第一个java程序
    HelloWorld随便新建一个文件夹,存放代码新建一个java文件文件后缀名为.javaHello.java【注意点】系统可能没有显示文件后缀名,我们需要手动打开编写代码......
  • Javascript(笔记44) - ES7特性 - 指数操作符
    Array.prototype.includesincludes 方法用来检测数组中是否包含某个元素,返回布尔值;constmingzhu=['西游记','三国演义','红楼梦','水浒传'];console.log(mingzhu.includ......