欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

日期时间类

程序员文章站 2022-11-24 17:08:36
1.Date类概述 java.util.Date ;类表示特定的瞬间,精确到毫秒。 查阅Date类的描述,发现Date拥有多个构造器,只是大部分已经过时,但是其中有未过时的构造器可以把毫秒值转成日期对象。 public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 ......
 

1.date类概述

java.util.date ;类表示特定的瞬间,精确到毫秒。

查阅date类的描述,发现date拥有多个构造器,只是大部分已经过时,但是其中有未过时的构造器可以把毫秒值转成日期对象。

  • public date():分配date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public date(long):分配date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 gtm)以来的指定毫秒数。

简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造函数,可以自定义毫秒时刻。例如:

import java.util.date;

public class demo01date {
    public static void main(string[] args) {
        // 创建日期对象,把当前的时间
        system.out.println(new date()); // sun jan 27 21:01:10 gmt+08:00 2019
        // 创建日期对象,把当前的毫秒值转成日期对象
        system.out.println(new date(0l)); // thu jan 01 08:00:00 gmt+08:00 1970
    }
}

tip:在使用println方法时,会自动调用date类中的tostring方法。date类对object类中的tostring方法进行了覆盖重写,所以结果为指定格式的字符串。

常用方法

date类中的多数方法已经过时,常用的方法有:

public long gettime() 把日期对象转换成对应的时间毫秒值。

2.dateformat类

java.text.dateformat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也可以在date对象与string对象之间进行来回转换。

  • 格式化:按照指定的格式,从date对象转换成string对象。
  • 解析:按照指定的格式,从string对象转换成date对象。

构造方法

由于dateformat为抽象类,不能直接使用,所以需要常用的子类java.text.simpledateformat。这个类需要一个模式来指定格式化或解析的标准。构造方法为:

  • public simpledateformat(string pattern):用给定的模式和默认的语言环境的日期格式符号构造simpledateformat。

参数pattern是一个字符串,代表日期时间的自定义格式。

格式规则

常用的格式规则为:

tip:更详细的格式规则,可以参考simpledateformat类的api文档

标识字母(区分大小写) 含义
y
m
d
h
m
s

 

常用方法

dateformat类的常用方法:

  • public string format(object obj):可以将接收的date对象格式化为字符串。(该方法同时可以接收时间毫秒值
  • public date parse(string source):将字符串解析为date对象。

 

simpledateformat df1 = new simpledateformat("yyyy-mm-dd")
   //将当前日期转换为字符串
   string s = df1.format(new date());
   system.out.println("---------------------------------------------");
   //将字符串转换为日期对象
   simpledateformat df2 = new simpledateformat("yyyy/mm/dd")
   date d = df2.parse("1949/10/01")
   system.out.println("---------------------------------------------");
    //将时间毫秒值转换成日期对象
    simpledateformat sdf = new simpledateformat("yyyy/mm/dd");
    date d1 = new date();
    string str = sdf.format(d1.gettime);

  

注意:使用psrse方法把字符串解析为date对象时,被解析字符串的格式必须与dateformat对象中的格式相同!

如以上代码中的被解析的字符串“1949/10/01”对应的日期格式为“yyyy/mm/dd”