从零开始学java(三十六)--Date类源码分析,DateFormat和SimpleDateFormat的使用

本文介绍了Java中的Date类,包括如何获取当前时间、比较日期以及Date对象的基本操作。同时,讲解了DateFormat和SimpleDateFormat的用途,它们用于时间日期对象与字符串之间的转换,通常使用SimpleDateFormat进行具体格式的设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从零开始学java(三十六)--Date类源码分析,DateFormat和SimpleDateFormat的使用

时间日期相关类

在这里插入图片描述
在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)
在这里插入图片描述
如果想获得现在时刻的“时刻数值”,可以使用:

long now = System.currentTimeMillis();

Date类

在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。

  1. Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒)。

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

  3. boolean after(Date when) 测试此日期是否在指定日期之后。

  4. booleanbefore(Date when) 测试此日期是否在指定日期之前。

  5. boolean equals(Object obj) 比较两个日期的相等性。

  6. long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

  7. String toString() 把此 Date 对象转换为以下形式的 String:day mon dd hh:mm:ss zzz yyyy 其中: day 是一周中的某一天 (Sun、 Mon、Tue、Wed、 Thu、 Fri、 Sat)。

以上方法很多都已经被取代,虽然仍然能够使用,但是不推荐,只要简单了解即可。

package Date.Test;

import java.util.Date;

/**
 * 测试Date类
 * @author 与猫子
 *
 */
public class Test_Date {

	public static void main(String[] args) {
		Date date = new Date();//默认为当前时刻
		System.out.println(date);
		//获得毫秒数
		System.out.println(date.getTime());
		
		Date date2  = new Date(10000);
		System.out.println(date2.after(date));
		
		//被淘汰的方法,不用
		//日期处理尽量使用canlendar日期类
		Date date3 = new Date(120,10,10);//2020-11-10
		System.out.println(date3);
	}
}

DateFormat和SimpleDateFormat的使用(用于时间和字符串的相互转化)

DateFormat类的作用是把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。

DateFormat是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。

DateFormat df = new SimpleDateFormat(); 

在使用SimpleDateFormat时我们是需要定义格式。
在这里插入图片描述
代码示例

package Date.Test;

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

/**
 * 测试时间对象和字符串之间的相互转换
 * DateFormat抽象类和SimpleDateFormat实现类的使用
 * @author 与猫子
 *
 */
public class Test_DateFormat {

	public static void main(String[] args) throws ParseException {
		//把时间按照指定的格式转换成相应的字符串
		DateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
		
		String str = df.format(new Date());
		System.out.println(str);
		
		
		//把字符串按照指定的格式转换成相应的时间对象
		DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
	
		Date date = df2.parse("2020年11月10日 20:52:45");
		System.out.println(date);
		
		
		//测试其他格式字符
		DateFormat  df3 = new SimpleDateFormat("D");
		String str3 = df3.format(new Date());
		System.out.println("今天是今年的第"+str3+"天");
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值