Java学习【阶段一[05]】常用API第二类(02Date类)

一、Date类概述

表示特定的时间,精确到毫秒

java.util.Date:表示日期和时间的类
类Date表示特定的瞬间,精确到毫秒
特定的瞬间:一个时间点,一刹那的时间
2019.11.03 09:55:33:333瞬间
毫秒值的作用:可以对时间和日期进行计算
2099年01-03到2122年02-25中间有多少天
可以将日期转换为毫秒进行计算,计算完毕再把毫秒转换为日期

把日期转换为毫秒
    当前的日期:2099-01-03
    时间原点:1970-01-01 00:00:00(Java规定)(英国格林威治时间)
    就是计算当前日期到时间原点之间一共经历了的多少毫秒
    
    把毫秒转换为日期
    1天=24×60×60=86400秒=86400000毫秒
    【注意】
    中国属于东八区,会把时间增加8个小时
    1970-01-01 08:00:00

package Day12_Demo02;
/*
java.util.Date:表示日期和时间的类
类Date表示特定的瞬间,精确到毫秒
特定的瞬间:一个时间点,一刹那的时间
2019.11.03 09:55:33:333瞬间
毫秒值的作用:可以对时间和日期进行计算
2099年01-03到2122年02-25中间有多少天
可以将日期转换为毫秒进行计算,计算完毕再把毫秒转换为日期

把日期转换为毫秒
    当前的日期:2099-01-03
    时间原点:1970-01-01 00:00:00(Java规定)(英国格林威治时间)
    就是计算当前日期到时间原点之间一共经历了的多少毫秒
    
    把毫秒转换为日期
    1天=24×60×60=86400秒=86400000毫秒
    【注意】
    中国属于东八区,会把时间增加8个小时
    1970-01-01 08:00:00
 */

public class Demo01Date {
	public static void main(String[] args) {
		System.out.println(System.currentTimeMillis());//获取当前系统一共到1970-01-01 00:00:00经历了多少毫秒//输出1572763119829

	}
}

二、Date类的构造方法和成员方法

1、构造方法

package Day12_Demo02;

import java.util.Date;

public class Demo02Date {
	public static void main(String[] args) {
		demo01();
		demo02();
	}
/*
   Date类的空参数构造方法:
     Date()获取的就是当前系统的日期和时间
 */
	private static void demo01() {
		Date date=new Date();
		System.out.println(date);//Sun Nov 03 14:45:19 CST 2019
	}
	/*
	Date类的带参数构造方法:
	Date(long date):传递毫秒值,把毫秒转换为Date日期
	
	 */
	private static void demo02() {
		Date d1=new Date(0L);
		System.out.println(d1);//Thu Jan 01 08:00:00 CST 1970
		
		Date d2=new Date(15663333325585555L);
		System.out.println(d2);//Mon Apr 11 11:46:25 CST 498321
	}
}

2、成员方法

 Date类的成员方法
     long getTime()把日期转为毫秒(相当于(System.currentTimeMillis())
     返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数

String toLocaleString();根据本地格式转换日期对象

package Day12_Demo02;

import java.util.Date;

public class Demo02Date {
	public static void main(String[] args) {
		demo01();
		demo02();
		demo03();
	}
/*
   Date类的空参数构造方法:
     Date()获取的就是当前系统的日期和时间
 */
	private static void demo01() {
		Date date=new Date();
		System.out.println(date);//Sun Nov 03 14:45:19 CST 2019
	}
	/*
	Date类的带参数构造方法:
	Date(long date):传递毫秒值,把毫秒转换为Date日期
	
	 */
	private static void demo02() {
		Date d1=new Date(0L);
		System.out.println(d1);//Thu Jan 01 08:00:00 CST 1970
		
		Date d2=new Date(15663333325585555L);
		System.out.println(d2);//Mon Apr 11 11:46:25 CST 498321
	}
	/*
	 Date类的成员方法
	 long getTime()把日期转为毫秒(相当于(System.currentTimeMillis())
	 返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
	 */
	private static void demo03() {
		Date d3=new Date();
		long time=d3.getTime();
		System.out.println(time);//1572770326687
		
	}
}

三、DateFormat类

java.text.DateFormat类是日期/时间格式化子类的抽象类,可以通过这个类完成日期和文本的转换

日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。

    java.text.DateFormat:是日期/时间格式化子类的抽象类
    作用:
    格式化(也就是日期 -> 文本)、解析(文本-> 日期)
    成员方法:
     String format(Date date) 按照指定的模式把Date日期格式化为符合模式的字符串
     Date parse(String source) 把符合模式的字符串解析为Date日期
     
     DateFormat是一个抽象类,无法直接创建对象使用,可以使用DateFormat子类
     
     java.text.SimpleDateFormat  extends DateFormat
     
     构造方法:
     SimpleDateFormat(String pattern)  用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
     参数:
     String pattern:传递指定的模式
     模式:区分大小写

常用的格式规则:

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

四、DateFormat类的format方法和parse方法

使用DateFormat类中的方法format,把日期格式化为文本
     String format(Date date) 按照指定的模式把Date日期格式化为符合模式的字符串
     使用步骤:
     1、创建SimpleDateFormat对象,构造方法中传递指定的模式
     2、调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串

 使用DateFormat类中的方法parse,把文本解析为日期
     Date parse(String source) 把符合模式的字符串解析为Date日期
     使用步骤:
     1、创建SimpleDateFormat对象,构造方法中传递指定的模式
     2、调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串解析为Date日期
     【注意】
     parse方法声明了一个异常叫ParseException解析异常
     如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
     调用一个抛出了异常的方法,就必须处理这个异常,要吗throws继续声明抛出这个异常,要么try...catch自己处理这个异常(后面会学)
     

package Day12_Demo02;

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

/*
    java.text.DateFormat:是日期/时间格式化子类的抽象类
    作用:
    格式化(也就是日期 -> 文本)、解析(文本-> 日期)
    成员方法:
     String format(Date date) 按照指定的模式把Date日期格式化为符合模式的字符串
     Date parse(String source) 把符合模式的字符串解析为Date日期
     
     DateFormat是一个抽象类,无法直接创建对象使用,可以使用DateFormat子类
     
     java.text.SimpleDateFormat  extends DateFormat
     
     构造方法:
     SimpleDateFormat(String pattern)  用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
     参数:
     String pattern:传递指定的模式
     模式:区分大小写
   写对应的模式会把模式替换为对应的日期和时间
   "yyyy-MM-dd HH:mm:ss"
   "yyyy年MM月dd日 HH时mm分ss秒"
   【注意】
   模式中字母不能变,连接符号能变
  
 */

public class Demo03DateFormat {
	public static void main(String[] args) throws ParseException {
		demo01();
		demo02();
		
	}
	/*
	 使用DateFormat类中的方法format,把日期格式化为文本
	 String format(Date date) 按照指定的模式把Date日期格式化为符合模式的字符串
	 使用步骤:
	 1、创建SimpleDateFormat对象,构造方法中传递指定的模式
	 2、调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串
	 */
	private static void demo01() {
		//1、创建SimpleDateFormat对象,构造方法中传递指定的模式
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    //2、调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串
		Date date=new Date();
		String text=sdf.format(date);
		System.out.println(date);//Sun Nov 03 20:01:37 CST 2019
		System.out.println(text);//2019-11-03 20:01:37
	}
	/*
	 使用DateFormat类中的方法parse,把文本解析为日期
	 Date parse(String source) 把符合模式的字符串解析为Date日期
	 使用步骤:
	 1、创建SimpleDateFormat对象,构造方法中传递指定的模式
	 2、调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串解析为Date日期
	 【注意】
	 parse方法声明了一个异常叫ParseException解析异常
	 如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常
	 调用一个抛出了异常的方法,就必须处理这个异常,要吗throws继续声明抛出这个异常,要么try...catch自己处理这个异常(后面会学)
	 */
	private static void demo02() throws ParseException {
		//1、创建SimpleDateFormat对象,构造方法中传递指定的模式
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    //2、调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串解析为Date日期
		Date date=sdf.parse("2019-11-03 20:01:37");
		System.out.println(date);//Sun Nov 03 20:01:37 CST 2019
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值