日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Format類及其子類功能和用法詳解

Format類及其子類功能和用法詳解

來源:程序員人生   發布時間:2014-09-05 16:14:33 閱讀次數:3629次

Format類及其子類功能和用法詳解

1.   Format類結構:

?        java.lang.Object

?        java.text.Format

?        All Implemented Interfaces:

SerializableCloneable

Direct Known Subclasses:

DateFormatMessageFormatNumberFormat


public abstract class Format

extends Object

implements Serializable, Cloneable

 

2.Format類概述:

Format 是一個用于格式化語言環境敏感的信息(如日期、消息和數字)的抽象基類 Format 定義了編程接口,用于將語言環境敏感的對象格式化為String(使用 format 方法)和將 String 重新解析為對象(使用 parseObject 方法)。

通常,一個 format parseObject方法必須能解析任何由其 format 方法格式化的字符串。不過,也可能存在不能解析的異常情況。例如,format 方法可能創建中間無分隔符的兩個相鄰整數,在這種情況下,parseObject 無法判斷哪個數字屬于哪個數。

Java 平臺為格式化日期、消息和數字分別提供了三個特殊的Format 的子類:DateFormatMessageFormat NumberFormat

具體的子類必須實現三個方法:

format(Object obj, StringBuffertoAppendTo, FieldPosition pos)

formatToCharacterIterator(Object obj)

parseObject(String source,ParsePosition pos)

這些常規方法允許對對象進行多態解析和格式化,還可以被使用(如被 MessageFormat 使用)。子類通常也為特定的輸入類型提供了另外的 format 方法,也為特定的結果類型提供了parse 方法。當在輸入文本的開始沒有任何所需格式的文本時,則任何不帶 ParsePosition 參數的 parse 方法都應該拋出 ParseException

大多數子類還將實現以下工廠方法:

getInstance 獲取一個適合于當前語言環境的有用的格式對象

getInstance(Locale)獲取一個適合于指定語言環境的有用的格式對象。

此外,某些子類還可能為了更特殊的控制實現其它 getXxxxInstance 方法。例如,NumberFormat 類提供了 getPercentInstance getCurrencyInstance 方法來獲取特殊的數字格式器。

Format 的子類如果允許程序員能為不同語言環境(比如用 getInstance(Locale) )創建對象,必須實現以下類方法:

 public staticLocale[] getAvailableLocales()

 最后子類定義一個常量集合來標識格式輸出中的不同字段。這些常量用于創建一個 FieldPosition 對象,該對象標識字段中所包含的信息及其在格式化結果中的位置。這些常量應當命名為item _FIELD,其中item 標識了該字段。有關這些常量的例子,請參閱 ERA_FIELD 及其在 DateFormat 中的同類。

 

3.創建Format類的實例

         因為Format是抽象類,所以我們無法通過Format 的構造方法(非公有的)來實例化Format類的對象。如下面的寫法是錯誤的:

Format format=new Format();

那么我們如何實例化Format類的實例呢?

我們可以利用Java面向對象語言的多態性來解決這個問題:

通過父類型的引用可以指向子類型的對象,說白了就是用子類去實例化父類的對象。如下面的做法:

Format format;

//通過子類直接實例化Format類的對象(適用于子類不是抽象類的情況)

format=new MessageFormat("hh");

//通過子類的getXxxxInstance()來實例化Format類的對象(適用于子類是抽象類的情況)

format=NumberFormat.getCurrencyInstance();

format=DateFormat.getDateInstance();

 

4. DateFormat

DateFormat Format類的抽象子類, 有一些staticgetXxxxInstance()方法來獲得實例。通過設置結果的長度和地區,來獲得日期,時間等的格式。

DateFormat不太常用。一般會使用SimpleDateFormat子類,newSimpleDateFormat("yyyy-MM-dd")newSimpleDateFormat("yyyy-MM-dd HH:mm:ss")等,來獲得常用的時間格式。

可以通過設置的getXxxxInstance()方法來實例化DateFormat類的對象。

DateFormat類中還有一些static的字段,如WEEK_OF_MONTH_FIELD,WEEK_OF_YEAR_FIELDapi上說在FieldPosition中使用,用于對齊。

java.util.Calendar也是日期操作相關的類,實現類為GregorianCalendar。主要對日期進行操作。注意add方法和roll方法的區別,roll方法不更改更大的字段。還有一些靜態的變量DAY_OF_MONTHDAY_OF_WEEK等,在get/set/add/roll方法中使用。

4.1DateFormat的用法舉例:

Date d = new Date();

String s;

/** Date類的格式: Sat Aug 30 13:05:56 CST 2014 */

System.out.println(d);

System.out.println("******************************************");

 

/** 輸出格式: 2014-8-30 */

s = DateFormat.getDateInstance().format(d);

System.out.println(s);

 

/** 輸出格式: 2014-8-30 */

s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);

System.out.println(s);

 

/** 輸出格式: 2014830日 星期六 */

s = DateFormat.getDateInstance(DateFormat.FULL).format(d);

System.out.println(s);

 

/** 輸出格式: 2014-8-30 */

s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);

System.out.println(s);

 

/** 輸出格式: 14-8-30 */

s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);

System.out.println(s);

 

/** 輸出格式: 2014-08-30 01:02:02 */

DateFormat format1 = new SimpleDateFormat(

        "yyyy-MM-dd hh:mm:ss");

s = format1.format(new Date());

System.out.println(s);  

5. NumberFormat類:

NumberFormat 是所有數值格式的抽象基類。此類提供格式化和解析數值的接口。NumberFormat 還提供了一些方法來確定哪些語言環境具有數值格式,以及它們的名稱是什么。

NumberFormat 可用于格式化和解析任何語言環境的數值。使代碼能夠完全獨立于小數點、千位分隔符甚至所用特定小數位數的語言環境約定,并與數值格式是否為偶小數無關。

 

5.1NumberFormat的用法舉例:

double num=868326.81472676;

 double test=3.1415926;

 //返回當前缺省語言環境的缺省數值格式。/*輸出結果:868,326.815*/

 String myString = NumberFormat.getInstance().format(num);

 System.out.println(myString);

 //getCurrencyInstance()返回當前缺省語言環境的通用貨幣格式/*輸出結果:¥868,326.81*/

 myString = NumberFormat.getCurrencyInstance().format(num);

 System.out.println(myString);

 //getNumberInstance() 生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生

------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 色网在线 | 国产精品久久久久久久一区二区 | 成人久久 | 欧美亚洲综合在线 | 欧美日韩国产精品 | 久久久久国产一区二区 | 尤物av | 青青草免费在线视频播放 | 一区二区视频在线观看 | 欧美福利一区二区 | 日韩在线精品强乱中文字幕 | 欧美成人精品一区二区 | 久久精品99 | 麻豆一区二区在线 | 97视频在线看 | 成人动漫在线免费观看 | 99re热这里只有精品视频 | 精品久久久久久久久久久 | 欧美视频网站 | 精品伦理一区二区 | 成人在线免费电影 | 91亚洲国产成人久久精品网站 | 日本久久久久 | 成年人免费观看 | 亚洲变态 | 国产一区二区三区四区hd | 色一色成人网 | 精品久久国产 | 久久99精品久久久久久久久久久久 | 欧美一区二区三区久久精品 | 日本久久久久久 | 成人区精品一区二区婷婷 | 久久久国产一区 | 91久久久国产精品 | 国产精选久久 | 57pao国产精品一区 | 青青草国产 | 欧美精品一区二区三区一线天视频 | 中文字幕久久精品 | 亚洲精品v天堂中文字幕 | 老色网站 |