這篇文章將為大家詳細講解有關java日期相關類的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、Date類
類 Date 表示特定的瞬間,精確到毫秒。用距離1970年1月1日00:00:00的毫秒數(long)類型來表示一個特定的時間點,該值可正可負。
Date類中很多方法已經過時,使用Calendar來替代。
常用方法有
long getTime()
void setTime(long time)
public class T01Date {
public static void main(String[] args) {
//getTime():返回的時間是距離1970年的毫秒數.值不受setTime()的影響
//date值受setTime()的影響
Date date=new Date();
long current=date.getTime();
System.out.println(current);//1472002479966
System.out.println(date);//Wed Aug 24 09:34:39 CST 2016
long time=current+1000*60*60*24;//時間設置為明日此時
date.setTime(time);
System.out.println(date.getTime());//1472002479966
System.out.println(current);//1472002479966
System.out.println(date);// Thu Aug 25 09:34:39 CST 2016
}
}二、SimpleDateFormat
SimpleDateFormat根據特定的日期格式在Date和字符串之間轉換
常用方法
String format(Date date):將日期按照指定格式轉換成字符串
Date parse(String str):將字符串按照指定格式轉換成Date
可以用來指定格式的字符
/**
* java.text.SimpleDateFormat
* 該類可以根據一個指定的日期格式將Date于String
* 之間相互轉換
* @author zc
*
*/
public class T02SimpleDateFormat {
public static void main(String[] args) throws ParseException {
Date now =new Date();
//2016-08-12 09:55:23
//yyyy-MM-dd hh:ss:mm
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh時ss分mm秒");
String str = sdf.format(now);
System.out.println(str);
//a 居然能區分上下午漢字
String strDate="2012年12月20日下午12點20分30秒";
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日ahh點ss分mm秒");
Date date=sdf2.parse(strDate);
System.out.println(date);
}
}三、Calendar
java.util.Calendar是抽象類,主要用來對時間分量進行計算。
常用方法
(1)Date和Calendar之間的轉換
//默認創建出來的Calendar的實現類表示當前系統時間 Calendar c=Calendar.getInstance(); //將Calendar轉換為Date Date date=c.getTime(); //Date->Calendar /* * void setTime(Date date) * 該方法可以使當前Calendar表示給定的 * Date所表示的時間 * */ c.setTime(date); } }
(2)getInstance()方法
Calendar是抽象類,其提供了一個工廠方法:Calendar getInstance()用來獲取Calendar類型的實例
(3)get(int field)方法獲取時間分量
import java.util.Calendar;
/**
* Calendar提供了獲取各個時間分量的值的方法
* @author zc
*/
public class T05Calendar2 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
//獲取年
int year=c.get(Calendar.YEAR);
System.out.println("year:"+year);//2016
//獲取月:月從0開始!!!,0表示一月
int month=c.get(Calendar.MONTH);
System.out.println("month:"+month);//7
/*
* 和天相關的時間分量
* DATE,DAY_OF_MONTH:是一致的,表示月中的第幾天
* DAY_OF_YEAR:表示年中的天
* DAY_OF_WEEK:表示周中的天
*
* */
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
System.out.println(c.get(Calendar.DAY_OF_WEEK));
int dow=c.get(Calendar.DAY_OF_WEEK)-1;
String[] data={"日","一","二","三","四","五","六"};
System.out.println("周"+data[dow]);
//獲取小時,分鐘,秒 HOUR_OF_DAY:24小時 HOUR:12小時
System.out.println(c.get(Calendar.HOUR_OF_DAY));//14
System.out.println(c.get(Calendar.HOUR));//2
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
}
}(4)set()方法設置時間分量
/**
* 設置時間分量
* @author zc
*
*/
public class T06Calendar3 {
public static void main(String[] args){
//表示2008-08-08 20:08:08
//設置年
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2008);
//設置月,月從0開始
c.set(Calendar.MONTH,Calendar.AUGUST);
//設置日
c.set(Calendar.DATE, 8);
//設置時
c.set(Calendar.HOUR_OF_DAY,20);
//設置分
c.set(Calendar.SECOND,8);
//設置秒
c.set(Calendar.MINUTE,8);
System.out.println(c.getTime());
//?。?!設置的時間分量超出后,會自行進位
}
}(5)add()方法在當前時間分量基礎上修改時間分量
(6)getActualMaximum()獲取某個時間分量所允許的最大值
/**
* 獲取某個時間分量所允許的最大值
* @author zc
*/
public class T07Calendar4 {
public static void main(String[] args) {
Calendar c=Calendar.getInstance();
//查看當月共多少天
int days=c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(days);
//查看今年多少天
int doy=c.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println(doy);
int t=c.getActualMaximum(Calendar.MINUTE);
System.out.println(t);
}
}四、Date、SimpleDateFormat和Calendar的一個綜合實例
@Test
public void test01() throws ParseException{
//要求用戶輸入一個日期,計算后,指定格式輸出日期
/*String--SimpleDateFormat()-->Date
Date-->Calendar
使用Calendar進行相應計算
Calendar-->Date
Date--SimpleDateFormat-->String
*/
String input="2013-03-26";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=sdf.parse(input);
Calendar c=Calendar.getInstance();
//set(),與add()
c.setTime(date);
c.add(Calendar.YEAR,1);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_WEEK,1);
date=c.getTime();
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd分hh時ss分mm秒");
String strTime=sdf2.format(date);
System.out.println(strTime);
}關于“java日期相關類的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。