多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

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

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

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的用法舉例:

  • <span id="yquvh"></span>

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

    ------分隔線----------------------------
    分享到:
    ------分隔線----------------------------
    關閉
    程序員人生
    主站蜘蛛池模板: 午夜影院在线免费观看 | 国产欧美一区二区三区久久 | 最近更新在线中文字幕一页 | 久久有精品 | 欧美国产亚洲一区二区三区 | 亚洲国产成人麻豆精品 | 亚洲ass| xxxxwww日本| 激情五月婷婷综合 | 日本无卡无吗在线 | 久久久日韩精品国产成人 | 亚洲春色另类小说 | 欧美做爱毛片 | 国产免费一区二区三区免费视频 | h网站免费看| 在线观看美女网站 | 国产狂喷白浆在线观看视频 | а中文在线天堂 | 国产精品久久久久久久久久久威 | 亚洲熟乱 | 狠狠躁天天躁夜夜躁婷婷 | 欧美性bbwbbw| 久久久久久久久毛片精品 | 国产在线a | 在线免费观看www | 男人和女人全黄一级毛片 | 久久国产经典视频 | 色永久| 欧美成人第一页 | 国产亚洲欧美ai在线看片 | 久久精品一区二区国产 | 免费在线网站 | a视频免费在线观看 | 秋霞午夜视频在线观看 | 国产在线一91区免费国产91 | 最好看的最新中文字幕2018免费视频 | 欧美69xxxx| 国产亚洲人成网站在线观看不卡 | 国产精品久久久久久搜索 | 国产香蕉一区二区在线网站 | 久草视频在线网 |
        <pre id="yquvh"></pre>

        <object id="yquvh"></object>
        <tr id="yquvh"><noframes id="yquvh"></noframes></tr>

        <noscript id="yquvh"></noscript>