一.Date类的概述
- 类 Date 表示特定的瞬间,精确到毫秒.
二.Date类的常见方法
Date类的构造方法
public Date()
:分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)public Date(long date)
:分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为”历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
import java.util.Date;
public class Demo1 {
public static void main(String[] args) {
Date d = new Date() ;
System.out.println(d);
long time = 1000/60/60 ;
Date d2 = new Date(time) ;
System.out.println("d2:"+d2);
}
}
结果:
Thu Aug 10 14:29:46 CST 2017
d2:Thu Jan 01 08:00:00 CST 1970
Date类的两个常用方法
public long getTime()
:返回一个时间毫秒数public void setTime(long time)
:设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点
import java.util.Date;
public class Demo2 {
public static void main(String[] args) {
Date d = new Date();
long time = d.getTime();
System.out.println(time);
d.setTime(time);
System.out.println(d);
}
}
结果:
1502347361236
Thu Aug 10 14:42:41 CST 2017
- SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期 -> 文本),解析(文本 -> 日期)和规范化
public SimpleDateFormat()
:用默认的模式和默认语言环境的日期格式符号构造 public SimpleDateFormat(String pattern)
:创建格式化/解析器对象,提供一个参数:模式
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo1 {
public static void main(String[] args) {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(d);
System.out.println(s);
}
}
结果:
2017-08-10
五.Date类和String类的相互转换
- Date —> String:
public final String format(Object obj)
:格式化一个对象以生成一个字符串
要使用DateFormat这个类:但是抽象类,使用子类(SimpleDateFormat)进行实例化 - String —> Date:
public Object parseObject(String source)
:解析字符串的文本,生成Date
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo2 {
public static void main(String[] args) throws ParseException {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(d);
System.out.println(s);
Date d2 = (Date) sdf.parseObject(s);
System.out.println(d2);
}
}
结果:
2017-08-10
Thu Aug 10 00:00:00 CST 2017
六.练习
- 键盘录入你的出生年月日,算一下你来到这个世界多少天
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的出生年月日:");
String line = sc.next() ;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
Date d = sdf.parse(line) ;
long beforeTime = d.getTime() ;
long nowTime = System.currentTimeMillis() ;
long time = nowTime - beforeTime ;
long day = time/1000/60/60/24 ;
System.out.println("你已经来到世界有:"+day+"天");
}
}
结果:
请输入您的出生年月日:
2001-08-23
你已经来到世界有:5831天