C# DateTime.ToString根據(jù)不同語言生成相應的時間格式
我想大家對DateTime.ToString()方法的用法肯定已經(jīng)非常熟悉了,但我想大家用過的大部分用法都是:DateTime.ToString(“format”),不過本文想講述的是它的另一個重載方法DateTime.ToString("format",IFormatProvider)。
如果大家做的項目中有多語言的需求的話,那么肯定少不了會有的功能要顯示一個時間,由于文差異域每種語言用戶對時間格式的需求肯定是不一樣的,比如英文中的時間格式是:12/2/2013 8:20:22 PM,而德語的格式是:02.12.2013 20:20:22;這個區(qū)別還是很大的,而且如果語言種數(shù)多的話,也很難對每種特定語言的時間格式作特定的處理,而且也不利于程序的擴展性。不過萬幸的是微軟給我們提供了CultureInfo這個類,同時這個類繼承了IFormatProvider這個接口,所以我們可以利用它來得到我們想要的時間格式(其它格式也可以通過它來獲取,比哪貨幣等)。
閑話不多說,直接看代碼:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-cn"); DateTime dt = Convert.ToDateTime("2013-12-2 20:20:22"); Console.WriteLine("當前語言:" + Thread.CurrentThread.CurrentCulture.DisplayName); Console.WriteLine("日期:2013-12-2 20:20:22"); Console.WriteLine("d-短日期模式: " + dt.ToString("d", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("D-長日期模式: " + dt.ToString("D", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("f-完整日期/時間模式(短時間): " + dt.ToString("f", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("F-完整日期/時間模式(長時間): " + dt.ToString("F", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("g-常規(guī)日期/時間模式(短時間): " + dt.ToString("g", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("G-常規(guī)日期/時間模式(長時間): " + dt.ToString("G", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("m-月日模式(m): " + dt.ToString("m", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("M-月日模式(M): " + dt.ToString("M", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("o-往返日期/時間模式: " + dt.ToString("o", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("R-RFC1123 模式: " + dt.ToString("R", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("s-可排序的日期/時間模式;符合 ISO 8601: " + dt.ToString("s", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("t-短時間模式: " + dt.ToString("t", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("T-長時間模式: " + dt.ToString("T", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("u-通用的可排序日期/時間模式: " + dt.ToString("u", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("U-通用的可排序日期/時間模式: " + dt.ToString("U", Thread.CurrentThread.CurrentCulture)); Console.WriteLine("Y-年月模式: " + dt.ToString("Y", Thread.CurrentThread.CurrentCulture)); Console.WriteLine(dt.ToString("yyyyMMdd")); Console.ReadLine();
在實際應用中,我們可以把第一行的“de-de“換成用戶切換的語言,然后通過設置當前的線程語言為當前語言種類,那么我們就可以在程序的任一位置通過”Thread.CurrentThread.CurrentCulture”來獲得。以前運行結(jié)果對比如下:
從結(jié)果可以知道,如果想通過CultureInfo來得到不同的語言格式,那么就不能用"yyyyMMdd","yyyy-MM-dd"等這種自定義格式。
附:得到貨幣格式的寫法為:decimal d = 123659.256M; d.ToString("c", Thread.CurrentThread.CurrentCulture.NumberFormat);
關于CultureInfo 類
CultureInfo 類保存區(qū)域性特定的信息,如關聯(lián)的語言、子語言、國家/地區(qū)、日歷和區(qū)域性約定。此類還提供對 DateTimeFormatInfo、NumberFormatInfo、CompareInfo 和 TextInfo 的區(qū)域性特定實例的訪問。這些對象包含區(qū)域性特定操作(如大小寫、格式化日期和數(shù)字以及比較字符串)所需的信息。
區(qū)域性名稱和標識符
區(qū)域性名稱遵循 RFC 1766 標準,格式為“<languagecode2>-<country/regioncode2>”,其中 <languagecode2> 是從 ISO 639-1 派生的由兩個小寫字母構成的代碼,<country/regioncode2> 是從 ISO 3166 派生的由兩個大寫字母構成的代碼。例如,美國英語為“en-US”。在雙字母語言代碼不可用的情況中,將使用從 ISO 639-2 派生的三字母代碼;例如,三字母代碼“div”用于使用 Dhivehi 語言的區(qū)域。某些區(qū)域性名稱帶有指定書寫符號的后綴;例如“-Cyrl”指定西里爾語書寫符號,“-Latn”指定拉丁語書寫符號。
System.Globalization 命名空間中的此類和其他類接受并使用下列預定義的區(qū)域性名稱和標識符。
區(qū)域性名稱 |
區(qū)域性標識符 |
語言-國家/地區(qū) |
---|---|---|
""(空字符串) |
0x007F |
固定區(qū)域性 |
af |
0x0036 |
南非荷蘭語 |
af-ZA |
0x0436 |
南非荷蘭語 - 南非 |
sq |
0x001C |
阿爾巴尼亞語 |
sq-AL |
0x041C |
阿爾巴尼亞語 - 阿爾巴尼亞 |
ar |
0x0001 |
阿拉伯語 |
ar-DZ |
0x1401 |
阿拉伯語 - 阿爾及利亞 |
ar-BH |
0x3C01 |
阿拉伯語 - 巴林 |
ar-EG |
0x0C01 |
阿拉伯語 - 埃及 |
ar-IQ |
0x0801 |
阿拉伯語 - 伊拉克 |
ar-JO |
0x2C01 |
阿拉伯語 - 約旦 |
ar-KW |
0x3401 |
阿拉伯語 - 科威特 |
ar-LB |
0x3001 |
阿拉伯語 - 黎巴嫩 |
ar-LY |
0x1001 |
阿拉伯語 - 利比亞 |
ar-MA |
0x1801 |
阿拉伯語 - 摩洛哥 |
ar-OM |
0x2001 |
阿拉伯語 - 阿曼 |
ar-QA |
0x4001 |
阿拉伯語 - 卡塔爾 |
ar-SA |
0x0401 |
阿拉伯語 - 沙特阿拉伯 |
ar-SY |
0x2801 |
阿拉伯語 - 敘利亞 |
ar-TN |
0x1C01 |
阿拉伯語 - 突尼斯 |
ar-AE |
0x3801 |
阿拉伯語 - 阿拉伯聯(lián)合酋長國 |
ar-YE |
0x2401 |
阿拉伯語 - 也門 |
hy |
0x002B |
亞美尼亞語 |
hy-AM |
0x042B |
亞美尼亞語 - 亞美尼亞 |
az |
0x002C |
阿澤里語 |
az-AZ-Cyrl |
0x082C |
阿澤里語(西里爾語)- 阿塞拜疆 |
az-AZ-Latn |
0x042C |
阿澤里語(拉?。? 阿塞拜疆 |
eu |
0x002D |
巴斯克語 |
eu-ES |
0x042D |
巴斯克語 - 巴斯克地區(qū) |
be |
0x0023 |
白俄羅斯語 |
be-BY |
0x0423 |
白俄羅斯語 - 白俄羅斯 |
bg |
0x0002 |
保加利亞語 |
bg-BG |
0x0402 |
保加利亞語 - 保加利亞 |
ca |
0x0003 |
加泰羅尼亞語 |
ca-ES |
0x0403 |
加泰羅尼亞語 - 加泰羅尼亞地區(qū) |
zh-HK |
0x0C04 |
中文 - 香港特別行政區(qū) |
zh-MO |
0x1404 |
中文 - 澳門特別行政區(qū) |
zh-CN |
0x0804 |
中文 - 中國 |
zh-CHS |
0x0004 |
中文(簡體) |
zh-SG |
0x1004 |
中文 - 新加坡 |
zh-TW |
0x0404 |
中文 - 臺灣 |
zh-CHT |
0x7C04 |
中文(繁體) |
hr |
0x001A |
克羅地亞語 |
hr-HR |
0x041A |
克羅地亞語 - 克羅地亞 |
cs |
0x0005 |
捷克語 |
cs-CZ |
0x0405 |
捷克語 - 捷克共和國 |
da |
0x0006 |
丹麥語 |
da-DK |
0x0406 |
丹麥語 - 丹麥 |
div |
0x0065 |
馬爾代夫語 |
div-MV |
0x0465 |
馬爾代夫語 - 馬爾代夫 |
nl |
0x0013 |
荷蘭語 |
nl-BE |
0x0813 |
荷蘭語 - 比利時 |
nl-NL |
0x0413 |
荷蘭語 - 荷蘭 |
en |
0x0009 |
英語 |
en-AU |
0x0C09 |
英語 - 澳大利亞 |
en-BZ |
0x2809 |
英語 - 伯利茲 |
en-CA |
0x1009 |
英語 - 加拿大 |
en-CB |
0x2409 |
英語 - 加勒比 |
en-IE |
0x1809 |
英語 - 愛爾蘭 |
en-JM |
0x2009 |
英語 - 牙買加 |
en-NZ |
0x1409 |
英語 - 新西蘭 |
en-PH |
0x3409 |
英語 - 菲律賓 |
en-ZA |
0x1C09 |
英語 - 南非 |
en-TT |
0x2C09 |
英語 - 特立尼達和多巴哥 |
en-GB |
0x0809 |
英語 - 英國 |
en-US |
0x0409 |
英語 - 美國 |
en-ZW |
0x3009 |
英語 - 津巴布韋 |
et |
0x0025 |
愛沙尼亞語 |
et-EE |
0x0425 |
愛沙尼亞語 - 愛沙尼亞 |
fo |
0x0038 |
法羅語 |
fo-FO |
0x0438 |
法羅語 - 法羅群島 |
fa |
0x0029 |
波斯語 |
fa-IR |
0x0429 |
波斯語 - 伊朗 |
fi |
0x000B |
芬蘭語 |
fi-FI |
0x040B |
芬蘭語 - 芬蘭 |
fr |
0x000C |
法語 |
fr-BE |
0x080C |
法語 - 比利時 |
fr-CA |
0x0C0C |
法語 - 加拿大 |
fr-FR |
0x040C |
法語 - 法國 |
fr-LU |
0x140C |
法語 - 盧森堡 |
fr-MC |
0x180C |
法語 - 摩納哥 |
fr-CH |
0x100C |
法語 - 瑞士 |
gl |
0x0056 |
加利西亞語 |
gl-ES |
0x0456 |
加利西亞語 - 加利西亞地區(qū) |
ka |
0x0037 |
格魯吉亞語 |
ka-GE |
0x0437 |
格魯吉亞語 - 格魯吉亞 |
de |
0x0007 |
德語 |
de-AT |
0x0C07 |
德語 - 奧地利 |
de-DE |
0x0407 |
德語 - 德國 |
de-LI |
0x1407 |
德語 - 列支敦士登 |
de-LU |
0x1007 |
德語 - 盧森堡 |
de-CH |
0x0807 |
德語 - 瑞士 |
el |
0x0008 |
希臘語 |
el-GR |
0x0408 |
希臘語 - 希臘 |
gu |
0x0047 |
古吉拉特語 |
gu-IN |
0x0447 |
古吉拉特語 - 印度 |
he |
0x000D |
希伯來語 |
he-IL |
0x040D |
希伯來語 - 以色列 |
hi |
0x0039 |
印地語 |
hi-IN |
0x0439 |
印地語 - 印度 |
hu |
0x000E |
匈牙利語 |
hu-HU |
0x040E |
匈牙利語 - 匈牙利 |
is |
0x000F |
冰島語 |
is-IS |
0x040F |
冰島語 - 冰島 |
id |
0x0021 |
印度尼西亞語 |
id-ID |
0x0421 |
印度尼西亞語 - 印度尼西亞 |
it |
0x0010 |
意大利語 |
it-IT |
0x0410 |
意大利語 - 意大利 |
it-CH |
0x0810 |
意大利語 - 瑞士 |
ja |
0x0011 |
日語 |
ja-JP |
0x0411 |
日語 - 日本 |
kn |
0x004B |
卡納達語 |
kn-IN |
0x044B |
卡納達語 - 印度 |
kk |
0x003F |
哈薩克語 |
kk-KZ |
0x043F |
哈薩克語 - 哈薩克斯坦 |
kok |
0x0057 |
貢根語 |
kok-IN |
0x0457 |
貢根語 - 印度 |
ko |
0x0012 |
朝鮮語 |
ko-KR |
0x0412 |
朝鮮語 - 韓國 |
ky |
0x0040 |
吉爾吉斯語 |
ky-KG |
0x0440 |
吉爾吉斯語 - 吉爾吉斯坦 |
lv |
0x0026 |
拉脫維亞語 |
lv-LV |
0x0426 |
拉脫維亞語 - 拉脫維亞 |
lt |
0x0027 |
立陶宛語 |
lt-LT |
0x0427 |
立陶宛語 - 立陶宛 |
mk |
0x002F |
馬其頓語 |
mk-MK |
0x042F |
馬其頓語 - 前南斯拉夫聯(lián)盟馬其頓共和國 |
ms |
0x003E |
馬來語 |
ms-BN |
0x083E |
馬來語 - 文萊 |
ms-MY |
0x043E |
馬來語 - 馬來西亞 |
mr |
0x004E |
馬拉地語 |
mr-IN |
0x044E |
馬拉地語 - 印度 |
mn |
0x0050 |
蒙古語 |
mn-MN |
0x0450 |
蒙古語 - 蒙古 |
no |
0x0014 |
挪威語 |
nb-NO |
0x0414 |
挪威語(伯克梅爾)- 挪威 |
nn-NO |
0x0814 |
挪威語(尼諾斯克)- 挪威 |
pl |
0x0015 |
波蘭語 |
pl-PL |
0x0415 |
波蘭語 - 波蘭 |
pt |
0x0016 |
葡萄牙語 |
pt-BR |
0x0416 |
葡萄牙語 - 巴西 |
pt-PT |
0x0816 |
葡萄牙語 - 葡萄牙 |
pa |
0x0046 |
旁遮普語 |
pa-IN |
0x0446 |
旁遮普語 - 印度 |
ro |
0x0018 |
羅馬尼亞語 |
ro-RO |
0x0418 |
羅馬尼亞語 - 羅馬尼亞 |
ru |
0x0019 |
俄語 |
ru-RU |
0x0419 |
俄語 - 俄羅斯 |
sa |
0x004F |
梵語 |
sa-IN |
0x044F |
梵語 - 印度 |
sr-SP-Cyrl |
0x0C1A |
塞爾維亞語(西里爾語)- 塞爾維亞 |
sr-SP-Latn |
0x081A |
塞爾維亞語(拉?。? 塞爾維亞 |
sk |
0x001B |
斯洛伐克語 |
sk-SK |
0x041B |
斯洛伐克語 - 斯洛伐克 |
sl |
0x0024 |
斯洛文尼亞語 |
sl-SI |
0x0424 |
斯洛文尼亞語 - 斯洛文尼亞 |
es |
0x000A |
西班牙語 |
es-AR |
0x2C0A |
西班牙語 - 阿根廷 |
es-BO |
0x400A |
西班牙語 - 玻利維亞 |
es-CL |
0x340A |
西班牙語 - 智利 |
es-CO |
0x240A |
西班牙語 - 哥倫比亞 |
es-CR |
0x140A |
西班牙語 - 哥斯達黎加 |
es-DO |
0x1C0A |
西班牙語 - 多米尼加共和國 |
es-EC |
0x300A |
西班牙語 - 厄瓜多爾 |
es-SV |
0x440A |
西班牙語 - 薩爾瓦多 |
es-GT |
0x100A |
西班牙語 - 危地馬拉 |
es-HN |
0x480A |
西班牙語 - 洪都拉斯 |
es-MX |
0x080A |
西班牙語 - 墨西哥 |
es-NI |
0x4C0A |
西班牙語 - 尼加拉瓜 |
es-PA |
0x180A |
西班牙語 - 巴拿馬 |
es-PY |
0x3C0A |
西班牙語 - 巴拉圭 |
es-PE |
0x280A |
西班牙 - 秘魯 |
es-PR |
0x500A |
西班牙語 - 波多黎各 |
es-ES |
0x0C0A |
西班牙語 - 西班牙 |
es-UY |
0x380A |
西班牙語 - 烏拉圭 |
es-VE |
0x200A |
西班牙語 - 委內(nèi)瑞拉 |
sw |
0x0041 |
斯瓦希里語 |
sw-KE |
0x0441 |
斯瓦希里語 - 肯尼亞 |
sv |
0x001D |
瑞典語 |
sv-FI |
0x081D |
瑞典語 - 芬蘭 |
sv-SE |
0x041D |
瑞典語 - 瑞典 |
syr |
0x005A |
敘利亞語 |
syr-SY |
0x045A |
敘利亞語 - 敘利亞 |
ta |
0x0049 |
泰米爾語 |
ta-IN |
0x0449 |
泰米爾語 - 印度 |
tt |
0x0044 |
韃靼語 |
tt-RU |
0x0444 |
韃靼語 - 俄羅斯 |
te |
0x004A |
泰盧固語 |
te-IN |
0x044A |
泰盧固語 - 印度 |
th |
0x001E |
泰語 |
th-TH |
0x041E |
泰語 - 泰國 |
tr |
0x001F |
土耳其語 |
tr-TR |
0x041F |
土耳其語 - 土耳其 |
uk |
0x0022 |
烏克蘭語 |
uk-UA |
0x0422 |
烏克蘭語 - 烏克蘭 |
ur |
0x0020 |
烏爾都語 |
ur-PK |
0x0420 |
烏爾都語 - 巴基斯坦 |
uz |
0x0043 |
烏茲別克語 |
uz-UZ-Cyrl |
0x0843 |
烏茲別克語(西里爾語)- 烏茲別克斯坦 |
uz-UZ-Latn |
0x0443 |
烏茲別克語(拉?。? 烏茲別克斯坦 |
vi |
0x002A |
越南語 |
vi-VN |
0x042A |
越南語 - 越南 |
上一篇:C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題
欄 目:C#教程
下一篇:C#中如何獲取文件圖標
本文標題:C# DateTime.ToString根據(jù)不同語言生成相應的時間格式
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6614.html
您可能感興趣的文章
- 01-10http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實不準確、不
- 01-10C#實現(xiàn)獲取不同對象中名稱相同屬性的方法
- 01-10C#比較二個數(shù)組并找出相同或不同元素的方法
- 01-10C#實現(xiàn)在網(wǎng)頁中根據(jù)url截圖并輸出到網(wǎng)頁的方法
- 01-10C# 中DateTime 的使用技巧匯總
- 01-10C#在DataTable中根據(jù)條件刪除某一行的實現(xiàn)方法
- 01-10C#根據(jù)日期計算星期幾的實例代碼
- 01-10C#根據(jù)年月日計算星期幾的函數(shù)
- 01-10C#根據(jù)身份證號碼判斷出生日期和性別
- 01-10讓C# Excel導入導出 支持不同版本Office


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實現(xiàn)頁面的局部加載