【JavaSE笔记】Java常用类及其方法(七)_Date

本期知识点:
Date类

类 Date (java.util)

类 Date 表示特定的瞬间,精确到毫秒。

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

尽管 Date 类打算反映协调世界时 (UTC),但无法做到如此准确,这取决于 Java 虚拟机的主机环境。当前几乎所有操作系统都假定 1 天 = 24 × 60 × 60 = 86400 秒。但对于 UTC,大约每一两年出现一次额外的一秒,称为“闰秒”。闰秒始终作为当天的最后一秒增加,并且始终在 12 月 31 日或 6 月 30 日增加。例如,1995 年的最后一分钟是 61 秒,因为增加了闰秒。大多数计算机时钟不是特别的准确,因此不能反映闰秒的差别。

1. Date类的构造方法:

public Date( )  分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(long date)   分配 Date
import java.util.Date;

//类 Date 表示特定的瞬间,精确到毫秒。 

//构造方法:
//	public Date()分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
//	public Date(long date)分配 Date 
public class Date类的构造方法 {
	public static void main(String[] args) {
		//创建日期对象;
		Date a = new Date();//需要导包
		System.out.println(a);//Sat Jul 29 13:52:22 CST 2017
		
		//public Date(long date):传递的是一个时间毫秒值
		long time = 1000/60/60;
		Date b = new Date(time);
		System.out.println(b);//Thu Jan 01 08:00:00 CST 1970
		
	}
}


2. Date类的常用方法:

public long getTime()   返回一个时间毫秒数。

将Date对象转换成long时间毫秒数。 用 getTime方法


public void setTime(long time)   设置此Date对象。


import java.util.Date;

/*
 * Date 类中的两个方法;
 * 	public long getTime():返回一个时间毫秒数。
 * 		将Date对象转换成long时间毫秒数。 用 getTime方法
 * 	public void setTime(long time):设置此Date对象。
 * */
public class Date类的方法 {
	public static void main(String[] args) {
		//创建日期对象
		Date a = new Date();
		
		//public long getTime(): 返回一个时间毫秒数
		long time = a.getTime();
		System.out.println("time:"+time);//1501307887401
		System.out.println("time:"+System.currentTimeMillis());//1501307887401
		//public static long currentTimeMillis()返回以毫秒为单位的当前时间。
		
		//public void setTime(long time):设置此Date对象;
		a.setTime(System.currentTimeMillis());
		System.out.println(a);//Sat Jul 29 14:03:13 CST 2017
	
	}
}



3. Date类型和String类型互相转换

中间桥梁: SimpleDateFormat
作用:
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat类的使用:
构造方法:
public SimpleDateFormat()   用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
public SimpleDateFormat(String pattern)   创建格式化/解析器对象 提供一个参数:模式
时间和日期模式:


注意:
创建SimpleDateFormat对象,如果使用SimpleDateFormet中有参构造(pattern:模式必须和你给定的字符串模式一致),否则会 报错 ava.text.ParseException;

public Date parse(String source)
throws ParseException
从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。
是DateFormat类的方法,在使用时要抛出异常 ParseException。

a. Date日期对象——以字符串String表示

public final String format(Object obj)   格式化一个对象以生成一个字符串。、
是DateFormat类的方法,DateFormat 是抽象类,使用子类进行实例化SimpleDateFormat

b. String(日期的文本格式)——Date (日期对象)

public Object parseObject(String source)   解析字符串的文本,生成Date



/*
Date日期对象——以字符串String表示
	public final String format(Object obj)  格式化一个对象以生成一个字符串。、
		是DateFormat类的方法,DateFormat 是抽象类,使用子类进行实例化SimpleDateFormat
String(日期的文本格式)——>Date (日期对象)
	public Object parseObject(String source)   解析字符串的文本,生成Date
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date类型和String类型互相转换 {
	public static void main(String[] args) throws ParseException {
		//Date ——> String
		//创建日期对象
		Date a = new Date();
		//创建SimpleDateFormat对象
		SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//指定模式。需要导包
		String b = s.format(a);
		System.out.println(b);//2017-07-29 14:40:02

		//String——>Date
		//定义一个日期字符串;
		String c = "2017-09-09";
		//创建SimpleDateFormat对象
		/*如果使用SimpleDateFormet中有参构造( pattern:模式必须和你给定的字符串模式一致)
		否则会 报错 ava.text.ParseException;*/
		SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd");
		
		Date d = ss.parse(c);//此时要跑出一个异常!!!!!!!!!!!!!
		
		System.out.println(d);//Sat Sep 09 00:00:00 CST 2017		
	}
}


4. Date类的练习

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


//键盘录入你的出生年月日,算一下你来到这个世界多少天?
public class Date类的练习 {
	public static void main(String[] args) throws ParseException {
		Scanner x = new Scanner(System.in);
		System.out.println("请输入你的出生年月日:");
		//录入数据
		String s = x.nextLine();
		//将字符串解析成日期对象。
		//使用SimpleDateFormat中的Parse()方法
		//创建SimpleDateFormat对象
		SimpleDateFormat a = new SimpleDateFormat("yyyy-MM-dd");
		Date d = a.parse(s);
		//通过日期得到一个毫秒值;
		long bftime = d.getTime();
		//获取当前时间
		long nowtime= System.currentTimeMillis();
		long time = nowtime-bftime;
		long day = time/1000/60/60/24;
		System.out.println("你已经活了:"+day+"天");
		
		
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值