一(Date類):
在JDK的java.util包中,提供了Date類用于表示日期和時間,精確到毫秒。隨著JDK版本的不斷升級和發展,Date類中的大部分構造方法和普通方法都已經不推薦使用。在JDK8中,Date類只有2個構造方法可以使用,具體如下。
1.Date():用來創建當前時間的Date對象。
2.Date(long date):用來創建指定時間的Date對象,初始化時間為在1970年1月1日0時0分0秒的基礎上去加毫秒值表示的時間。
計算機的初始時間:記為1970年1月1日0時0分0秒。
package 日期與時間類;
?
import java.util.Date;public class DateTest01 {public static void main(String[] args) {// 創建日期類Date date1 = new Date();// 獲取當前基于環境的時間System.out.println(date1);long time = date1.getTime();//計算當前時間距離1970年1月1日 00:00:00 的 毫秒值---時間戳System.out.println(time);Date date2 = new Date(90000);//創建一個距離1970年1月1日 00:00:00 經過了多少毫秒的時間System.out.println(date2);}
}
二(SimpleDateFormat類):
SimpleDateFormat類可以使用new關鍵字創建實例對象,它的構造方法需要接收一個表示時間格式模板的字符串參數,用來以區域設置日期的格式化和解析。
SimpleDateFormat構造方法:
1. public SimpleDateFormat()//表示設置默認格式和日期 。
2. public SimpleDateFormat(String pattern)
SimpleDateFormat類格式化和解析涉及的方法:
1.格式化方法:(Date-->SimpleDateFormat)
2.解析方法:(String---->Date)
import java.text.SimpleDateFormat;
import java.util.Date;public class DateTest02 {public static void main(String[] args) throws Exception {//SimpleDateFormat 用來實現 日期 和 字符串 之間的相互轉換SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");Date date1 = new Date();// 把日期轉換成指定格式的字符串String format = sdf.format(date1);System.out.println(format);// 把指定格式的 字符串 轉換成 日期String time = "2000/10/23 08:20:54";Date date2 = sdf.parse(time);System.out.println(date2);}
}
三(Calendar類):
Calendar類用于完成日期和時間字段的操作,可以通過特定的字段設置和讀取日期的特定部分,比如年月日時分秒等。Calendar類是一個抽象類,不可以被實例化,在程序中需要調用其靜態方法getInstance()來得到一個Calendar對象,然后才能調用其相應的方法,具體示例如下:
Calendar calendar=Calendar.getInstance();
Calendar類為操作日期和時間提供了大量的方法,例如:
1.int get(int field):返回指定日歷字段field的值
2.void set(int field,int value):設置指定日歷字段field的值value
3.void set(int year,int month,int date):設置Calendar對象的年月日3個字段的值
4.void set(int year,int month,int date,int hour,int minute,int second):設置Calendar對象的年月日6個字段的值
5.void add(int field,int amount):為指定的日歷字段field增加或減少指定的時間量amount
6.Date getTime()返回一個表示當前Calendar表示的時間的Date對象,即Calendar———>Date
以上大多數方法int類型的參數field,該參數需要接收Calendar類中的常量值,分別代表著不同的字段。例如:
1.Calendar.YEAR:表示年份
2.Calendar.MONTH:表示月份。在使用該字段時,月份的起始值是從0開始的,因此要獲取當前的月份需要在Calendar.MONTH的基礎上+1
3.Calendar.DATE:表示日(天)
4.Calendar.HOUR:表示小時
5.Calendar.MINUTE:表示分鐘
6.Calendar.SECOND:表示秒
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;public class CalenderTest01 {public static void main(String[] args) {//Calendar類是一個抽象類,可以通過Calendar 的getInstance方法返回一 個Calendar 對象Calendar calendar = Calendar.getInstance();//獲取當前系統的時間Date date1 = calendar.getTime();System.out.println(date1);Long timeInMillis = calendar.getTimeInMillis();System.out.println("當前時間的亳秒值: " + timeInMillis);TimeZone timeZone = calendar.getTimeZone();System.out.println("時區: " + timeZone);//get.方法可以根據指定的日歷字段獲取時間對應的值int year = calendar.get(Calendar.YEAR);System.out.println("年份: " + year);int month = calendar.get(Calendar.MONTH);//0-11 表示1-12月System.out.println("月份: " + (month + 1));int date = calendar.get(Calendar.DAY_OF_MONTH);System.out.println("日期: " + date);int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);System.out.println("本年的第: " + dayOfYear);System.out.println("------------------------");//可以獲取指定時間月份0 - 11表示1 - 12月calendar.set(2000, 9, 28, 15, 32,35);Date date2 = calendar.getTime();System.out.println(date2);}
}