Date类的学习

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

有3种构造方法:
   public Date( )表示分配它的时间(精确到毫秒)。
public Date(long date):创建一个日期对象,指定毫秒值 (需要将long 时间毫秒值转换成Date对象)

                public void setTime(long time):设置毫秒值

我们可以通过一个段代码来深入了解它的功能

public static void main(String[] args) {
		
		Date d = new Date() ;
		System.out.println(d); //Date类型的日期格式:Sun Apr 29 11:22:47 CST 2018	
								//Date的文本格式:  String :2018-4-29
		
		Date dd = new Date(1000) ;
		System.out.println(dd);
		
	}//输出为Thu May 03 09:04:26 CST 2018
                Thu Jan 01 08:00:01 CST 1970

 public long getTime()
将Date格式转换成long的毫秒值格式

public static void main(String[] args) {
		
		//创建日期类对象
		Date  d = new Date() ;
		long time = d.getTime() ;
		System.out.println(System.currentTimeMillis());//输出为1525309829693

重点:Date的日期格式和日期的文本格式String类型之间的转

 Date---->String(格式化)
 
 String-->Date(解析)
  
 中间的转换:使用一个中间类:DateFormat,但是DateFormat是一个抽象类,抽象意味着不能实例化,所以应该考虑用它的子类:
  SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
 
  SimpelDateFormat的构造方法:
  public SimpleDateFormat(String pattern) :构造一个SimpleDateFormat对象,根据pattern(模式:规则)
  
   SimpleDateFormat sdf = new SimpleDateFormat("xxx年xx月xx日") ;
 
  日期和时间模式
   
    年: yyyy
  月: MM
   日: dd
 
    时: hh
  分: mm
    秒: ss
 
 实际开发中:牵扯时间的东西,经常Date--String  String--Date换

下面用一段代码详细介绍该功能

Date---->String转换

public static void main(String[] args) {
		//创建一个Date对象
		Date d = new Date();
		//创建SimpleDateFormat类对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		//public final String format(Date date):格式化
		String str = sdf.format(d);
		System.out.println("str"+str);//输出为str2018-05-03 09:57:49

String---->Date

public static void main(String[] args) throws ParseException {
		String str = "2018-5-3";
		//创建SimpleDateFormat类对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		//注意 :simpleDateFormat在解析文本格式的时候,里面 模式(规则)一定要和文本格式的模式一直,
		//否则就出现PareseException
		Date d = sdf.parse(str);
		System.out.println("d"+d);//输出为dThu May 03 00:00:00 CST 2018

学了这么多,我们可以做一个小练习巩固一下

需求:键盘录入你的出生年月日,算一下你来到这个世界多少天? 

分析:
1)创建键盘录入对象,录入一个数据出生年月日
  2)1990-xx-xx
  3)将文本格式的数据解析成日期对象
  4)getTime() ; 获取出生所在日期的时间毫秒值
  5)获取当前系统时间毫秒值
  (6) 5)-4) =  long time

                (7)换算

public static void main(String[] args) throws ParseException {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		//录入数据
		System.out.println("请输入您的出生日期:");
		String str = sc.nextLine();//yyyy-MM-dd
		//创建SimpleDateFormat对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date date = sdf.parse(str);
		//获取出生年月所在的系统时间
		long oldTime = date.getTime();
		//再获取当前系统时间的毫秒值
		long newTime = System.currentTimeMillis();
		
		long time = newTime-oldTime;
		long day = time/1000/60/60/24;
		System.out.println("您来到这个世界已经"+day+"天");
		
	}//in:1994-02-15//out:您来到这个世界已经8843天


猜你喜欢

转载自blog.csdn.net/luzhu1234/article/details/80174736