Date类的构造方法和成员方法:
DateFormat类&SimpleDateFormat类介绍:
DateFormat类的format方法和parse方法:
Date类的概述
概述:java.util.Date
类 表示特定的瞬间,精确到毫秒。
主要方法:
-
public Date()
:分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 -
public Date(long date)
:分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
tips: 由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
ava.util.Date:表示日期和时间的类
类 Date 表示特定的瞬间,精确到毫秒。
毫秒:千分之一秒 1000毫秒=1秒
特定的瞬间:一个时间点,一刹那时间
2088-08-08 09:55:33:333 瞬间 2088-08-08 09:55:33:334 瞬间 2088-08-08 09:55:33:334 瞬间 ....
-
毫秒值的作用:可以对时间和日期进行计算
2099-01-03 到 2088-01-01 中间一共有多少天
可以日期转换为毫秒进行计算,计算完毕,在把毫秒转换为日期 -
把日期转换为毫秒:
当前的日期:2088-01-01
时间原点(0毫秒):1970 年 1 月 1 日 00:00:00(英国格林威治)
就是计算当前日期到时间原点之间一共经历了多少毫秒 (3742767540068L) -
注意:
中国属于东八区,会把时间增加8个小时1970 年 1 月 1 日 08:00:00
把毫秒转换为日期:
1 天 = 24 × 60 × 60 = 86400 秒 = 86400 x 1000 = 86400000毫秒
public classDemo01Date {
public static void main(String[] args) { System.out.println(System.currentTimeMillis());//获取当前系统时间到1970 年 1 月 1 日 00:00:00经历了多少毫秒 } }
Date类的构造方法和成员方法
成员方法:
- long getTime() 把日期转换为毫秒值(相当于System.currentTimeMillis()方法)
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
private static voiddemo03() {
Date date = new Date(); long time = date.getTime(); System.out.println(time);//3742777636267 }
构造方法:
- Date类的带参数构造方法
- Date(long date) :传递毫秒值,把毫秒值转换为Date日期
private static voiddemo02() {
Date date = new Date(0L); System.out.println(date);// Thu Jan 01 08:00:00 CST 1970 date = new Date(3742767540068L); System.out.println(date);// Sun Aug 08 09:39:00 CST 2088 }
- Date类的空参数构造方法
- Date() 获取当前系统的日期和时间
private static voiddemo01() {
Date date = new Date(); System.out.println(date);//Sun Aug 08 12:23:03 CST 2088 } }
package com.itheima.demo02.Date;
import java.util.Date; public class Demo02Date { public static void main(String[] args) { demo03(); } /* long getTime() 把日期转换为毫秒值(相当于System.currentTimeMillis()方法) 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 */ private static void demo03() { Date date = new Date(); long time = date.getTime(); System.out.println(time);//3742777636267 } /* Date类的带参数构造方法 Date(long date) :传递毫秒值,把毫秒值转换为Date日期 */ private static void demo02() { Date date = new Date(0L); System.out.println(date);// Thu Jan 01 08:00:00 CST 1970 date = new Date(3742767540068L); System.out.println(date);// Sun Aug 08 09:39:00 CST 2088 } /* Date类的空参数构造方法 Date() 获取当前系统的日期和时间 */ private static void demo01() { Date date = new Date(); System.out.println(date);//Sun Aug 08 12:23:03 CST 2088 } }
DateFormat类的概述
概述
java.text.DateFormat
是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
-
格式化:按照指定的格式,从Date对象转换为String对象。
-
解析:按照指定的格式,从String对象转换为Date对象。
构造方法
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat
。这个类需要一个模式(格式)来指定格式化或解析的标准。
public SimpleDateFormat(String pattern)
:用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
成员方法
String format(Date date)
按照指定的模式,把Date日期,格式化为符合模式的字符串Date parse(String source)
把符合模式的字符串,解析为Date日期
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类
java.text.SimpleDateFormat extends DateFormat
格式规则
DateFormat类的format方法
使用DateFormat类中的方法format,把日期格式化为文本
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
private static voiddemo01() {
//1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本) //String format(Date date) 按照指定的模式,把Date日期,格式化为符合模式的字符串 Date date = new Date(); String d = sdf.format(date); System.out.println(date);//Sun Aug 08 15:51:54 CST 2088 System.out.println(d);//2088年08月08日 15时51分54秒 } }
import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.util.Date; /* 把Date对象转换成String */ public class Demo03DateFormatMethod { public static void main(String[] args) { Date date = new Date(); // 创建日期格式化对象,在获取格式化对象时可以指定风格 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日"); String str = df.format(date); System.out.println(str); // 2008年1月23日 } }
DateFormat类的parse方法
使用DateFormat类中的方法parse,把文本解析为日期
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定的模式
2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
注意:public Date parse(String source) throws ParseException
parse方法声明了一个异常叫ParseException
如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续抛出这个异常,要么try catch自己处理
private static voiddemo02() throws ParseException {
//1.创建SimpleDateFormat对象,构造方法中传递指定的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); //2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期 //Date parse(String source) 把符合模式的字符串,解析为Date日期 Date date = sdf.parse("2088年08月08日 15时51分54秒"); System.out.println(date); }
import java.text.DateFormat;
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /* 把String转换成Date对象 */ public class Demo04DateFormatMethod { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy年MM月dd日"); String str = "2018年12月11日"; Date date = df.parse(str); System.out.println(date); // Tue Dec 11 00:00:00 CST 2018 } }