1.DateFormat類java
此類是一個日期的格式化類,專門格式化日期的操做,由於java.util.Date類自己就已經包含了完整的日期,因此只須要將些日期按照一些好的格式格式化一下顯示就行了.app
觀察DateFormat類的定義:此類是定義在java.test包中的。函數
public abstract class DateFormat extends Format測試
可是定義上能夠發現,此類是一個抽象類,按照以住的思路,直接使用其子類實例化便可,可是DateFormat 類自己的內部提供了能夠直接爲其實例化的操做。spa
獲得日期的DateFormat對象:public static final DateFormat getDateInstance().net
獲得日期時間的DateFormat對象:public static final DateFormat getDateTimeInstance()code
直接使用DateFormat類完成Date類的轉換功能:public final String format(Date date)orm
美式日期格式 對象
import java.text.DateFormat ; import java.util.Date ; public class DateDemo03{ public static void main(String args[]){ DateFormat df1 = null ; // 聲明一個DateFormat DateFormat df2 = null ; // 聲明一個DateFormat df1 = DateFormat.getDateInstance() ; // 獲得日期的DateFormat對象 df2 = DateFormat.getDateTimeInstance() ; // 獲得日期時間的DateFormat對象 System.out.println("DATE:" + df1.format(new Date())) ; // 按照日期格式化 System.out.println("DATETIME:" + df2.format(new Date())) ; // 按照日期時間格式化 } };
中式日期格式(經過Locale對象指定要顯示的區域,指定的區域是中國)
此類的功能是完成日期的顯示格式化的,例如,在開發中,能夠會將一種日期格式變爲另一種日期格式,以下所示:blog
原始日期:2008-10-19 10:11:30.345
轉換捕日期:2008 年 10 月 19 日 10 點 11 分 30 秒 345 毫秒
可是以上的兩個日期中日期的數字是徹底同樣的,惟一不一樣的是日期的顯示格式不一樣,因此要想實現這樣的轉換功能就必須依靠SimpleDateFormat類。
若是要想實現轉換,則必須首先準備好一個模板,經過此模板進行日期數字的提取工做。
在SimpleDateFormat類使用的時候,必須注意的是在構造對象時要傳入匹配的模板
構造方法:public SimpleDateFormat(String pattern)
轉換:public Date parse(String source)throws ParseException -->此時取得的是所有時間數。
格式化:public final String Format(Date date) -->將時間從新格式化成字符串顯示。
1.DateFormat 能夠直接使用,但其自己是一個抽象類,能夠根據Locate指定的區域不一樣獲得不一樣的日期時間顯示效果
2.SimpleDateFormat 類是DateFormat 類的子類,通常狀況下來說 DateFormat 類不多會直接使用。而都使用SimpleDateFormat 類完成。
------------------------------------------------------------------------------------------------------------------------------------
SimpleDateFormat函數的繼承關係:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
下面是個小例子:
import java.text.*;
import java.util.Date;
/**
SimpleDateFormat函數語法:
G 年代標誌符
y 年
M 月
d 日
h 時 在上午或下午 (1~12)
H 時 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第幾天
F 一月中第幾個星期幾
w 一年中第幾個星期
W 一月中第幾個星期
a 上午 / 下午 標記符
k 時 在一天中 (1~24)
K 時 在上午或下午 (0~11)
z 時區
*/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等價於now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w個星期 一月中第W個星期 在一天中k時 z時區");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
}
}
效果:
2004年12月16日 17時24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17時24分27秒 星期四
一年中的第 351 天 一年中第51個星期 一月中第3個星期 在一天中17時 CST時區
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004
下面是個JavaBean:
public class FormatDateTime {
public static String toLongDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 E ");
return myFmt.format(dt);
}
public static String toShortDateString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH時mm分");
return myFmt.format(dt);
}
public static String toLongTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");
return myFmt.format(dt);
}
public static String toShortTimeString(Date dt){
SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");
return myFmt.format(dt);
}
public static void main(String[] args) {
Date now=new Date();
System.out.println(FormatDateTime.toLongDateString(now));
System.out.println(FormatDateTime.toShortDateString(now));
System.out.println(FormatDateTime.toLongTimeString(now));
System.out.println(FormatDateTime.toShortTimeString(now));
}
}
調用的main 測試結果:
2004年12月16日 17時38分26秒 星期四
04年12月16日 17時38分
17 38 26 0965
04/12/16 17:38
須要引進 java.util.Calendar 和 java.text.SimpleDateFormat 這兩個類: Calendar rightNow = Calendar.getInstance(); SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmss"); String sysDatetime = fmt.format(rightNow.getTime()); 能夠對 new SimpleDateFormat("yyyyMMddhhmmss") 中引號裏面的格式進行編輯,轉換成本身相要的格式,好比還能夠轉 換成 new SimpleDateFormat("yyyy/MM/dd hh:mm:ss ") 的格式