Date


data-數據  date-時間java

Date
* -Date的每個實例用於表現一個確切的時間點
* -內部維護了一個long值,該值記錄的是:
* 1970.01.01到如今的的時間毫秒數,正數是70年以後,負數是70年以前
* -由於Date在設計上有缺陷,因此他的大部分方法都被設置成「過期的」,再也不建議使用sql

java.lang 不須要導入,能夠直接使用
* java.util 工具類
* java.io 輸入或者輸出流
* java.sql 關於數據庫操做
* java.text 文本格式數據庫

package day01;

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

/**
 * data-數據  date-時間
 * java.util.Date
 *  -Date的每個實例用於表現一個確切的時間點
 *  -內部維護了一個long值,該值記錄的是:
 *   1970.01.01到如今的的時間毫秒數,正數是70年以後,負數是70年以前
 *  -由於Date在設計上有缺陷,因此他的大部分方法都被設置成「過期的」,再也不建議使用
 *  
 *  java.lang 不須要導入,能夠直接使用
 *  java.util 工具類
 *  java.io   輸入或者輸出流
 *  java.sql  關於數據庫操做
 *  java.text 文本格式
 *  
 * @author ajia
 * 
 *
 */
public class DateDemo {
public static void main(String[] args) {
	/*
	 * 使用默認構造方法建立的Date類達標當前時間
	 */
	Date now=new Date();
	/*
	 * Date重寫了toString方法,其返回的字符串爲當前時間
	 *  Wed Aug 22 09:36:12 CST 2018
	 */
	System.out.println(now);
	SimpleDateFormat date=new SimpleDateFormat("yyyy-MM-dd");
	String str=date.format(now);
	System.out.println(str);
	
/*
* Date中過時的方法
*/
	now.getYear();//過期
	long time=now.getTime();//獲取時間毫秒數
	System.out.println(time);
	
	
//計算明天這個時候的時間毫秒數
	time+=24*60*60*1000;
	System.out.println(time);//明天此時的毫秒數
	
	/*
	 * void setTime(long)
	 * - 設置一個long值,使date對象表現long值表明的時間值
	 */
	now.setTime(time);
	System.out.println(now);
	
	
	
	
	
	
}
}

  

java.text.SimpleDateFormat
 -根據一個給定的日期格式將Date與String轉換工具

 

package day01;

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

/*
 * java.text.SimpleDateFormat
 *  -根據一個給定的日期格式將Date與String轉換
 *  
 */
public class SimpleDateFormatDemo01 {
public static void main(String[] args) {
	 Date now=new Date();
	 System.out.println(now);
	 
	 /*
	  * SimpleDateFormat在建立時需傳入一個時間格式
	  * y:年      H:小時
	  * M:月      m:分
	  * d:日     s:秒
	  */
	 
	 //format方法將時間按照上面給定的格式以字符串的格式輸出
	 SimpleDateFormat date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E a" );
	 String nowDate=date.format(now);
	 System.out.println(nowDate);
	 
	 
}
}

  課堂小練習:spa

顯示當前系統時間16天5小時35分鐘40秒以後的時間按
-格式:2018年8月25號 15:24:35設計

 

package day01;

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

/*
 * 顯示當前系統時間16天5小時35分鐘40秒以後的時間按 
 * -格式:2018年8月25號 15:24:35
 *      
 */
public class Work01 {
public static void main(String[] args) {
	Date now=new Date();
	now.setTime(now.getTime()+16*24*60*60*1000+5*60*60*1000+35*60*1000+40*1000);
	//date中的setTime方法傳入的參數是long值,用於設置當前Date
	SimpleDateFormat date=new SimpleDateFormat("yyyy年MM月dd號 HH:mm:ss ");
	String time=date.format(now);
	System.out.println(time);
}
}

  

Date parse(String str)
* -將給定的字符串按照SimpleDateFormat指定的日期格式解析爲一個Date對象orm

package day01;

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

/*
 *  將String -》date
 *  Date parse(String str)
 *    -將給定的字符串按照SimpleDateFormat指定的日期格式解析爲一個Date對象
 *  
 */
public class SimpleDateFormatDemo2 {
public static void main(String[] args) throws ParseException {
	String st="2008-08-08 20:08:08";
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	Date date=sdf.parse(st);//須要拋異常
	System.out.println(date);
	 
	 
}
}

  課堂小練習:對象

package day01;

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

/*要求用戶輸入一個本身的生日,格式爲:1992-01-01
 * -計算輸出:到如今活了多少天
 * -距離10000天還有多少天
 * -10000天的生日記念日是幾號
 *      
 */
public class Work2 {
public static void main(String[] args) throws ParseException {
	System.out.println("請輸入你的出生日日期,例如:2000-01-01");
	Scanner scan=new Scanner(System.in);
	String str=scan.nextLine();
	SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
	Date date=sd.parse(str);//拋異常
	Date now=new Date();
	long nowTime=now.getTime();
	long birthTime=date.getTime();
	long liveTime=nowTime-birthTime;
	liveTime/=(24*60*60*1000);
	System.out.println("恭喜你到如今活了:"+liveTime+"天");
	
	//距離多少天1w天
	if(liveTime<=10000){
		System.out.println("距離10000天還有"+(10000-liveTime)+"天");
	}else{
		System.out.println("你已經超過1w天");
	}
	
	//計算1w天幾年幾日的毫秒數
	liveTime=(10000-liveTime)*24*60*60*1000;
	liveTime+=now.getTime();
	now.setTime(liveTime);
	System.out.println("你1w天的時間記念日爲"+sd.format(now));
	
}
}

  

java.util.Calendar
 -該類是一個抽象類,封裝了對時間的相關操做
 -可使用該類:計算時間blog

 

package day01;

import java.util.Calendar;
import java.util.Date;

/**
 * java.util.Calendar
 * -該類是一個抽象類,封裝了對時間的相關操做
 * -可使用該類:計算時間
 * 
 * @author ajia
 *
 */
public class CalenderDemo01 {
public static void main(String[] args) {
	 /*
	  *  -使用Calendar自帶的靜態方法建立實例。該方法會根據當前系統所在的地區
	  *  建立一個對應的實現,一般是GregorianCalendar(公曆)
	  *  -默認表示當前系統時間
	  */
	Calendar calendar=Calendar.getInstance();
//	System.out.println(calendar);
	
	/*
	 * Calendar轉化成Date
	 * Date getTime()
	 *  -返回一個Date對象,該對象表示的時間就是當前Calendar的時間
	 */
	Date date=calendar.getTime();
	System.out.println(date);
	
	//增長一天
	date.setTime(24*60*60*1000);
	date=calendar.getTime();
	System.out.println(date);
	
	/*
	 * void setTime(Date date)
	 * -setTime方法使calendar對象表示傳入的Date時間對象的時間
	 */
	calendar.setTime(date);
	date=calendar.getTime();
	System.out.println(date );
	
}

}

 

  注:Date.getTime()獲取的是時間的毫秒數,calendar.getTime()是將當前公曆時間返回Date型字符串

 Calendar不一樣時間份量設置的方法

calendar.set(int field,int value)

 

package day01;

import java.util.Calendar;
import java.util.Date;
/*
 * Calendar提供了針對不一樣時間份量都設置的方法
 * void set(int field,int value)
 *    -第一個參數爲時間份量:年月日...時間份量是一個int值,一般由Calendar提供
 *    -第二個參數爲對應的值
 */
public class CalenderDemo2 {
public static void main(String[] args) {
	
	Calendar calendar=Calendar.getInstance();
	/*
	 * 設置2008-08-08
	 */
    //設置年
	calendar.set(Calendar.YEAR, 2008);
	//設置月從0開始,故設置成7月
	calendar.set(Calendar.MONTH,7);
	//也可使用Calendar中月的常量
	//calendar.set(Calendar.MONTH, Calendar.AUGUST);
	
    //設置日
	/*
	 * Date          月中天
	 * Day_OF_MONTH  月中天
	 * Day_OF_WEEK   週中天
	 * Day_OF_YEARK  年中天
	 * 
	 */
	calendar.set(Calendar.DAY_OF_MONTH,8);
	System.out.println(calendar.getTime());
	
	/*
	 * HOUR_OF_DAY:24h制
	 * HOUR:12h制
	 */
	
	calendar.set(Calendar.HOUR_OF_DAY, 20);//設置時
	calendar.set(Calendar.MINUTE, 8);//設置分
	calendar.set(Calendar.SECOND, 8);//設置秒
	System.out.println(calendar.getTime());
}

}

Calendar對不一樣時間份量的獲取

int get (int field)
package day01;

import java.util.Calendar;

/**
 * 獲取Calendar中時間份量對應的值
 *  int get (int  field)
 *  傳入一個想獲取的時間份量
 * @author ajia
 *
 */
public class CalendarDemo03 {
	
	public static void main(String[] args) {
		Calendar calendar=Calendar.getInstance();
		int year=calendar.get(Calendar.YEAR);//獲取年
		int month=calendar.get(Calendar.MONTH);//獲取月
		int day=calendar.get(Calendar.DAY_OF_MONTH);//獲取號
		int h=calendar.get(Calendar.HOUR_OF_DAY);//獲取小時
		int m=calendar.get(Calendar.MINUTE);//獲取分
		int s=calendar.get(Calendar.SECOND);//獲取秒
		
		System.out.println(year+"年"+month+"月"+day+"日"+" "+h+":"+m+":"+s);
		//獲取今天是星期幾
		int day1=calendar.get(Calendar.DAY_OF_WEEK);
		System.out.println(day1);
		
		//今天是今年的第幾天
		int day2=calendar.get(Calendar.DAY_OF_YEAR);
		System.out.println(day2);
		
	}
	
	

}

  

  

Calendar中計算時間的方法
calendar add(int field,int value)

package day01;

import java.util.Calendar;

/**
 * Calendar中計算時間的方法
 *  -calendar add(int field,int value)
 *  -對指定時間份量加上給定的值。若是給定的是負數,則是減去時間
 * @author ajia
 *
 */
public class CalendarDemo05 {
public static void main(String[] args) {
	/*
	 * 查看三年兩個月零八天後時間
	 */
	Calendar calendar=Calendar.getInstance();
	calendar.add(Calendar.YEAR, 3);
	calendar.add(Calendar.MONTH, 2);
	calendar.add(Calendar.DAY_OF_YEAR, 8);
	System.out.println(calendar.getTime());
	
	
	
}
}

  課堂小練習:

 

package day03;

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

/**
 * 輸入一個生產日期格式"yyyy-MM-dd",再輸入一個數字(保質期的天數)。
 * 而後通過計算輸出促銷日期,促銷日期爲:該商品過時日前2周的週三
 * @author Xiloer
 *
 */
public class Test04 {
public static void main(String[] args) throws ParseException {
	System.out.println("請輸入生產日期,格式如:2000-01-01");
	Scanner scan=new Scanner(System.in);
	String birthDay=scan.nextLine();
	System.out.println("請輸入保質期,例如:80");
	int freshDay=scan.nextInt();
	
	//
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
	 Date date=sdf.parse(birthDay);//將字符串轉換成Date
	 
	 Calendar calendar=Calendar.getInstance();
	 calendar.setTime(date);//將用戶輸入的日期換成calendar進行計算
	 
	 
	 calendar.add(Calendar.DAY_OF_YEAR, freshDay);//計算保質期的時間
	 calendar.add(Calendar.DAY_OF_YEAR, -14);//減去兩禮拜前
	 
	 calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);;//獲取倆禮拜前的週三
	 Date date1=calendar.getTime();
	 String str=sdf.format(date1);
	 System.out.println(str);
	
}
}
相關文章
相關標籤/搜索