国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

格式化日期時(shí)間數(shù)字等等

2019-11-11 03:01:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
   有專(zhuān)門(mén)負(fù)責(zé)格式處理的類(lèi)。為了對(duì)格式化進(jìn)行控制,可以使用Locale類(lèi)。為了描述locale,你要參考語(yǔ)言、國(guó)家代碼和變量(如果有的話(huà))并把這些字符串發(fā)送給Locale類(lèi)的構(gòu)造器。
Locale a = new Locale("zh");Locale b = new Locale("zh","CN");Locale c = new Locale("zh","CN","B");

   為了方便起見(jiàn), java SE預(yù)定義了大量的locale對(duì)象,Locale.CHINA,Locale.CANADA等。Java SE還預(yù)定義了大量的語(yǔ)言locale,它們只設(shè)定了語(yǔ)言而沒(méi)有位置:Locale.CHINESE,Locale.ENGLISH等。

   除了構(gòu)建一個(gè)locale或使用預(yù)定義的locale外,還可以有兩種方法來(lái)獲得一個(gè)locale對(duì)象。Locale類(lèi)的靜態(tài)getdefault方法可以獲得作為本地操作系統(tǒng)的一部分而存放的默認(rèn)locale。可以調(diào)用setDefault來(lái)改變默認(rèn)的Java locale;但是,這種改變只對(duì)你的程序有效,不會(huì)對(duì)操作系統(tǒng)產(chǎn)生影響。最后,對(duì)于所有依賴(lài)locale的類(lèi),可以返回一個(gè)它們所支持的locale數(shù)組。

Locale[] a = DateFormat.getAvailableLocales()   一旦有了一個(gè)locale,你能用它做什么呢?答案是它所能做的事情很有限。 Locale類(lèi)中惟一有用的是那些定義語(yǔ)言和國(guó)家代碼的方法,其中最重要的一個(gè)是getdisplayName,它返回一個(gè)描述locale的字符串。這個(gè)字符串并不包含前面所說(shuō)的由兩個(gè)字母組成的代碼,而是以一種面向用戶(hù)的形式來(lái)表現(xiàn)。
	Locale a = new Locale("zh","CN");	System.out.PRintln(a.getDisplayName());輸出 中文(中國(guó))	System.out.println(a.getDisplayName(Locale.JAPANESE));中國(guó)語(yǔ) (中華人民共和國(guó))	System.out.println(a.getDisplayName(Locale.ENGLISH));Chinese (China)
LocaleLocale(String language)Locale(String language, String country)Locale(String language, String country, String variant)用給定的語(yǔ)言、國(guó)家和變量創(chuàng)建一個(gè)locale。static Locale getDefault()返回默認(rèn)的locale。static void setDefault(Locale loc)設(shè)定默認(rèn)的locale。String getDisplayName()返回一個(gè)在當(dāng)前的locale中所表示的用來(lái)描述locale的名字。String getDisplayName(Locale loc)返回一個(gè)在給定的locale中所表示的用來(lái)描述locale的名字。String getLanguage()返回語(yǔ)言代碼,它是兩個(gè)小寫(xiě)字母組成的ISO-639代碼。String getDisplayLanguage()返回在當(dāng)前l(fā)ocale中所表示的語(yǔ)言名稱(chēng)。String getDisplayLanguage(Locale loc)返回在給定locale中所表示的語(yǔ)言名稱(chēng)。String getCountry()返回國(guó)家代碼,它是由兩個(gè)大寫(xiě)字母組成的ISO-3166代碼。String getDisplayCountry()返回在當(dāng)前l(fā)ocale中所表示的國(guó)家名。String getDisplayCountry(Locale loc)返回在當(dāng)前l(fā)ocale中所表示的國(guó)家名。String getVariant()返回locale中變量的字符串。String getDisplayVariant()返回在當(dāng)前l(fā)ocale中所表示的變量名稱(chēng)。String getDisplayVariant(Locale loc)返回在給定locale中所表示的變量名稱(chēng)。String toString()返回locale的描述,包括語(yǔ)言、國(guó)家和變量,用下劃線(xiàn)分隔(比如, “ de_CH”)。數(shù)字格式

Java類(lèi)庫(kù)提供了一個(gè)格式器(formatter)對(duì)象的集合,可以對(duì)java.text包中的數(shù)字值進(jìn)行格式化和解析。1.得到locale對(duì)象。2.使用一個(gè)“工廠(chǎng)方法”得到一個(gè)格式器對(duì)象。3.使用這個(gè)格式器對(duì)象來(lái)完成格式化和解析工作。

   工廠(chǎng)方法是NumberFormat類(lèi)的一個(gè)靜態(tài)方法,它接受一個(gè)Locale類(lèi)型的參數(shù)。總共有3個(gè)工廠(chǎng)方法: getNumberInstance、 getCurrencyInstance和getPercentInstance,這些方法返回的對(duì)象可以分別對(duì)數(shù)字、貨幣量和百分比進(jìn)行格式化和解析。

	Locale a = new Locale("de","DE");	NumberFormat nf = NumberFormat.getCurrencyInstance(a);	double b = 1234.57687;	String string = nf.format(b);	System.out.println(string);輸出1.234,58 €   相反地,如果要想讀取一個(gè)按照某個(gè)locale的規(guī)定而輸入或存儲(chǔ)的數(shù)字,那么就需要使用parse方法。比如,下面的代碼解析了用戶(hù)輸入到文本框中的值。 parse方法能夠處理小數(shù)點(diǎn)和分隔符以及其他語(yǔ)言中的數(shù)字。parse的返回類(lèi)型是抽象類(lèi)型的Number。返回的對(duì)象是一個(gè)Double或Long的包裝器類(lèi),這取決于被解析的數(shù)字是否是浮點(diǎn)數(shù)。如果兩者都可以接 受,可以使用Number類(lèi)中的doubleValue方法來(lái)讀取被包裝的數(shù)字。Number類(lèi)型的對(duì)象并不能自動(dòng)轉(zhuǎn)換成相關(guān)的基本類(lèi)型,因此,不能直接將一個(gè)Number對(duì)象賦給一個(gè)基本類(lèi)型,而應(yīng)該使用doubleValue或intValue方法。   如果數(shù)字文本的格式不正確,該方法會(huì)拋出一個(gè)ParseException異常。例如,字符串以空格開(kāi)頭是不允許的(可以調(diào)用trim方法來(lái)去掉空格)。但是,任何跟在數(shù)字之后的字符都將被忽略,所以這些跟在后面的字符是不會(huì)引起異常的。可以用靜態(tài)的getAvailableLocales方法得到一個(gè)當(dāng)前所支持的locale對(duì)象列表。這個(gè)方法返回一個(gè)locale對(duì)象數(shù)組,從中可以獲得針對(duì)它們的數(shù)字格式器對(duì)象。

可以用DecimalFormat df = new DecimalFormat("#.00");來(lái)處理數(shù)字。表示小數(shù)點(diǎn)后兩位,不足補(bǔ)0。但是0.12format后變?yōu)?12;

NumberFormatstatic Locale[] getAvailableLocales()返回一個(gè)Locale對(duì)象的數(shù)組,其成員包含有NumberFormat 格式器。static NumberFormat getNumberInstance()static NumberFormat getNumberInstance(Locale l)static NumberFormat getCurrencyInstance()static NumberFormat getCurrencyInstance(Locale l)static NumberFormat getPercentInstance()static NumberFormat getPercentInstance(Locale l)當(dāng)當(dāng)前的或給定的locale提供處理數(shù)字、貨幣值或百分比的格式器。String format(double x)String format(long x)對(duì)給定的浮點(diǎn)數(shù)或整數(shù)進(jìn)行格式化并以字符串的形式返回結(jié)果。Number parse(String s)解析給定的字符串并返回?cái)?shù)字值,如果輸入字符串描述了一個(gè)浮點(diǎn)數(shù),返回類(lèi)型就是Double,否則返回類(lèi)型就是Long。字符串必須以一個(gè)數(shù)字開(kāi)頭;以空格開(kāi)頭是不允許的。數(shù)字之后可以跟隨其他字符,但它們都將被忽略。解析失敗時(shí)拋出ParseException異常。void setParseIntegerOnly(boolean b)boolean isParseIntegerOnly()設(shè)置或獲取一個(gè)標(biāo)識(shí),該標(biāo)識(shí)指示這個(gè)格式器是否應(yīng)該只解析整數(shù)值。void setGroupingUsed(boolean b)boolean isGroupingUsed()設(shè)置或獲取一個(gè)標(biāo)識(shí),該標(biāo)識(shí)指示這個(gè)格式器是否會(huì)添加十進(jìn)制分隔符(比如100 000)。void setMinimumIntegerDigits(int n)int getMinimumIntegerDigits()void setMaximumIntegerDigits(int n)int getMaximumIntegerDigits()void setMinimumFractionDigits(int n)int getMinimumFractionDigits()void setMaximumFractionDigits(int n)int getMaximumFractionDigits()設(shè)置或獲取整數(shù)或小數(shù)部分所允許的最大或最小位數(shù)。   為了格式化貨幣值,可以使用NumberFormat.getCurrencyInstance方法。但是,這個(gè)方法的靈活性不好,它返回一個(gè)只針對(duì)一種貨幣的格式器。使用Currency類(lèi)來(lái)控制被格式器所處理的貨幣。可以通過(guò)將一個(gè)貨幣標(biāo)識(shí)符傳給靜態(tài)的Currency.getInstance方法來(lái)得到一個(gè)Currency對(duì)象,然后對(duì)每一個(gè)格式器都調(diào)用setCurrency方法。
		Locale a = new Locale("de","DE");		NumberFormat nf = NumberFormat.getCurrencyInstance(a);		nf.setCurrency(Currency.getInstance("zh"));
Curreneystatic Currency getInstance(String currencyCode)static Currency getInstance(Locale locale)返回與給定的ISO 4217貨幣代號(hào)匹配的Currency實(shí)例或返回與給定locale對(duì)應(yīng)的國(guó)家。String toString()String getCurrencyCode()獲取貨幣的ISO 4217代碼。String getSymbol()String getSymbol(Locale locale)根據(jù)默認(rèn)或給定的locale得到貨幣的格式化符號(hào)。比如美元的格式化符號(hào)可能是“ $”或“ US$”,具體是哪種形式依賴(lài)于locale。int getDefaultFractionDigits()獲取貨幣值小數(shù)點(diǎn)后的默認(rèn)位數(shù)。時(shí)間和日期

當(dāng)格式化日期和時(shí)間時(shí),需要考慮4個(gè)與locale相關(guān)的問(wèn)題:月份和星期應(yīng)該用本地語(yǔ)言來(lái)表示。年月日的順序要符合本地習(xí)慣。公歷可能不是本地首選的日期表示方法。必須要考慮本地的時(shí)區(qū)。   Java的DateFormat類(lèi)可以處理這些問(wèn)題。它和NumberFormat類(lèi)很相似,用起來(lái)很容易。首先,得到一個(gè)locale,可以使用默認(rèn)的locale或調(diào)用靜態(tài)的getAvailableLocales方法來(lái)得到一個(gè)支持日期格式化的locale數(shù)組。

		DateFormat df = DateFormat.getDateInstance(style, Locale);		DateFormat.getTimeInstance(style, aLocale)		DateFormat.getDateTimeInstance(dateStyle, timeStyle, aLocale)為了設(shè)定想要的風(fēng)格,這些工廠(chǎng)方法有一個(gè)參數(shù),它可以是以下某個(gè)值:DateFormat.DEFAULTDateFormat.FULL (例如,按照美國(guó)locale,日期格式為 Wednesday, September 12, 2007 8:51:03 PM PDT)DateFormat.LONG (例如,按照美國(guó)locale,日期格式為September 12, 2007 8:51:03 PM PDT)DateFormat.MEDIUM (例如,按照美國(guó)locale,日期格式為Sep 12, 2007 8:51:03 PM)DateFormat.SHORT (例如,按照美國(guó)locale,日期格式為9/12/07 8:51 PM可以使用SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");來(lái)處理日期。

DateFormatstatic Locale[] getAvailableLocales()返回一個(gè)Locale對(duì)象的數(shù)組,可以對(duì)這些對(duì)象使用DateFormat格式器。static DateFormat getDateInstance(int dateStyle)static DateFormat getDateInstance(int dateStyle, Locale l)static DateFormat getTimeInstance(int timeStyle)static DateFormat getTimeInstance(int timeStyle, Locale l)static DateFormat getDateTimeInstance(int dateStyle, int timeStyle)static DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale l)為默認(rèn)或指定的locale返回一個(gè)日期格式器、時(shí)間格式器或日期和時(shí)間的格式器。參數(shù): dateStyle, timeStyle DEFAULT、 FULL、 LONG、 MEDIUM、 SHORT之一String format(Date d)對(duì)給定的日期/時(shí)間進(jìn)行格式化,并返回結(jié)果。Date parse(String s)解析給定的字符串,返回其中描述的日期/時(shí)間。字符串必須以日期或時(shí)間開(kāi)頭;以空格開(kāi)頭是不允許的。日期后可以跟其他字符,但它們會(huì)被忽略。如果解析沒(méi)有成功,則拋出ParseException異常。void setLenient(boolean b)boolean isLenient()設(shè)置或獲得一個(gè)標(biāo)志,它標(biāo)記解析時(shí)是采用寬松的還是嚴(yán)格的方式。在寬松模式下,像February 30, 1999這樣的日期會(huì)被自動(dòng)轉(zhuǎn)換成March 2, 1999。它是默認(rèn)的模式。void setCalendar(Calendar cal)Calendar getCalendar()設(shè)置或獲得Calendar對(duì)象,可以用它來(lái)從Date對(duì)象中獲取年、月、日、小時(shí)、分鐘和秒。如果不想使用該locale的默認(rèn)日歷(一般是公歷),就使用這個(gè)方法。void setTimeZone(TimeZone tz)TimeZone getTimeZone()設(shè)置或獲得格式化時(shí)間的時(shí)區(qū)對(duì)象。如果不想讓locale使用默認(rèn)時(shí)區(qū),可以使用這個(gè)方法。默認(rèn)時(shí)區(qū)是默認(rèn)locale的時(shí)區(qū),可以從操作系統(tǒng)中得到它。對(duì)于其他locale,應(yīng)該使用和地理位置相對(duì)應(yīng)的時(shí)區(qū)。void setNumberFormat(NumberFormat f)NumberFormat getNumberFormat()設(shè)置或獲得數(shù)字格式,用它來(lái)格式化那些表示年、月、日、小時(shí)、分、秒的時(shí)間。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 化州市| 江华| 万山特区| 泸州市| 仲巴县| 万州区| 翼城县| 兴宁市| 福泉市| 施甸县| 腾冲县| 鹿邑县| 沛县| 宝应县| 和龙市| 平湖市| 邢台县| 阳西县| 虎林市| 平山县| 金门县| 门源| 海盐县| 桃江县| 仪陇县| 丹寨县| 富平县| 南康市| 天祝| 邛崃市| 宜春市| 睢宁县| 宣化县| 台中市| 成都市| 吉水县| 安顺市| 芮城县| 衡南县| 汽车| 泗阳县|