csharp Format CultureInfo

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Globalization;
using System.Text;
using System.Threading;


namespace sitemapdemo
{

    public partial class FormatStringForm : System.Web.UI.Page
    {


        /// <summary>
        /// http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.71).aspx
        ///Geovin Du 塗聚文 20120510 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            // Format a negative integer or floating-point number in various ways.
            int integralVal = -12345;
            double floatingVal = -1234.567d;

            string msgCurrency = "(C) Currency: . . . . . . ";
            string msgDecimal = "(D) Decimal:. . . . . . . ";
            string msgScientific = "(E) Scientific: . . . . . ";
            string msgFixedPoint = "(F) Fixed point:. . . . . ";
            string msgGeneral = "(G) General (default):. . ";
            string msgNumber = "(N) Number: . . . . . . . ";
            string msgPercent = "(P) Percent:. . . . . . . ";
            string msgRoundTrip = "(R) Round-trip: . . . . . ";
            string msgHexadecimal = "(X) Hexadecimal:. . . . . ";

            string msg1 = "Use ToString(String) and the current thread culture.\n";
            string msg2 = "Use ToString(String, IFormatProvider) and a specified culture.\n";
            string msgCulture = "Culture:";
            string msgIntegralVal = "Integral value:";
            string msgFloatingVal = "Floating-point value:";

            CultureInfo ci;

            Response.Write("Standard Numeric Format Specifiers:\n");
            // Display the values.
            Response.Write(msg1+"<br/>");
            //Thread.CurrentThread.CurrentCulture = new CultureInfo("th-TH", false);
            // Display the thread current culture, which is used to format the values.
            ci = Thread.CurrentThread.CurrentCulture;
            string s=String.Format("{0,-26}{1}", msgCulture, ci.DisplayName);
            Response.Write(s + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C") + "<br/>");
            // Display the integral and floating-point values.
            s = String.Format("{0,-26}{1}", msgIntegralVal, integralVal);
            Response.Write(s + "<br/>");
            s = String.Format("{0,-26}{1}", msgFloatingVal, floatingVal);
            Response.Write(s + "<br/>");
            //Response.Write();
            s = string.Format("{0:d}", System.DateTime.Now); ///结果为:2009-3-20 (月份位置不是03)
            Response.Write(s + "<br/>");
            s = string.Format("{0:D}", System.DateTime.Now); //结果为:2009年3月20日
            Response.Write(s + "<br/>");
            s = string.Format("{0:f}", System.DateTime.Now); //结果为:2009年3月20日 15:37
            Response.Write(s + "<br/>");
            s = string.Format("{0:F}", System.DateTime.Now); //结果为:2009年3月20日 15:37:52
            Response.Write(s + "<br/>");
            s = string.Format("{0:g}", System.DateTime.Now); // 结果为:2009-3-20 15:38
            Response.Write(s + "<br/>");
            s = string.Format("{0:G}", System.DateTime.Now); //结果为:2009-3-20 15:39:27
            Response.Write(s + "<br/>");
            s = string.Format("{0:m}", System.DateTime.Now); //结果为:3月20日
            Response.Write(s + "<br/>");
            s = string.Format("{0:t}", System.DateTime.Now); //结果为:15:41
            Response.Write(s + "<br/>");
            s = string.Format("{0:T}", System.DateTime.Now); //结果为:15:41:50
            Response.Write(s + "<br/>");
            // Use the format specifiers that are only for integral types.
            Response.Write("Format specifiers only for integral types:" + "<br/>");
            Response.Write(msgDecimal + integralVal.ToString("D") + "<br/>");
            Response.Write(msgHexadecimal + integralVal.ToString("X") + "<br/>");


            // Use the format specifier that is only for the Single and Double 
            // floating-point types.
            Response.Write("Format specifier only for the Single and Double types:" + "<br/>");
            Response.Write(msgRoundTrip + floatingVal.ToString("R") + "<br/>");
;

            // Use the format specifiers that are for integral or floating-point types.
            Response.Write("Format specifiers for integral or floating-point types:" + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C") + "<br/>");
            Response.Write(msgScientific + floatingVal.ToString("E") + "<br/>");
            Response.Write(msgFixedPoint + floatingVal.ToString("F") + "<br/>");
            Response.Write(msgGeneral + floatingVal.ToString("G") + "<br/>");
            Response.Write(msgNumber + floatingVal.ToString("N") + "<br/>");
            Response.Write(msgPercent + floatingVal.ToString("P") + "<br/>");
    

            // Display the same values using a CultureInfo object. The CultureInfo class 
            // implements IFormatProvider.
            Response.Write(msg2);

            // Display the culture used to format the values. 
            // Create a European culture and change its currency symbol to "euro" because 
            // this particular code example uses a thread current UI culture that cannot 
            // display the euro symbol (€).
            ci = new CultureInfo("de-DE");
            ci.NumberFormat.CurrencySymbol = "euro";
            s = String.Format("{0,-26}{1}", msgCulture, ci.DisplayName);
            Response.Write(s + "<br/>");
            Response.Write("Format specifiers for integral or floating-point types:" + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C", ci) + "<br/>");
            // Display the integral and floating-point values.
            s = String.Format("{0,-26}{1}", msgIntegralVal, integralVal);
            Response.Write(s + "<br/>");
            s = String.Format("{0,-26}{1}", msgFloatingVal, floatingVal);
            Response.Write(s + "<br/>");


            ci = new CultureInfo("de-DE");            
            s = String.Format("{0,-26}{1}", msgCulture, ci.DisplayName);
            Response.Write(s + "<br/>");
            Response.Write("Format specifiers for integral or floating-point types:" + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C", ci) + "<br/>");
            // Display the integral and floating-point values.
            s = String.Format("{0,-26}{1}", msgIntegralVal, integralVal);
            Response.Write(s + "<br/>");
            s = String.Format("{0,-26}{1}", msgFloatingVal, floatingVal);
            Response.Write(s + "<br/>");
            s = string.Format(CultureInfo.CreateSpecificCulture("de-DE"), "{0:d}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci,"{0:D}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:f}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:F}", System.DateTime.Now);
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:g}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:G}", System.DateTime.Now);
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:m}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:t}", System.DateTime.Now); 
            Response.Write(s + "<br/>");
            s = string.Format(ci, "{0:T}", System.DateTime.Now); 
            Response.Write(s + "<br/>");

            // Use the format specifiers that are only for integral types.
            Response.Write("Format specifiers only for integral types:" + "<br/>");
            Response.Write(msgDecimal + integralVal.ToString("D", ci) + "<br/>");
            Response.Write(msgHexadecimal + integralVal.ToString("X", ci) + "<br/>");
         

            // Use the format specifier that is only for the Single and Double 
            // floating-point types.
            Response.Write("Format specifier only for the Single and Double types:" + "<br/>");
            Response.Write(msgRoundTrip + floatingVal.ToString("R", ci) + "<br/>");
          

            // Use the format specifiers that are for integral or floating-point types.
            Response.Write("Format specifiers for integral or floating-point types:" + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C", ci) + "<br/>");
            Response.Write(msgScientific + floatingVal.ToString("E", ci) + "<br/>");
            Response.Write(msgFixedPoint + floatingVal.ToString("F", ci) + "<br/>");
            Response.Write(msgGeneral + floatingVal.ToString("G", ci) + "<br/>");
            Response.Write(msgNumber + floatingVal.ToString("N", ci) + "<br/>");
            Response.Write(msgPercent + floatingVal.ToString("P", ci) + "<br/>");

            ci = new CultureInfo("de-DE");
            ci.NumberFormat.CurrencySymbol = "euro";
            s = String.Format("{0,-26}{1}", msgCulture, ci.DisplayName);
            Response.Write(s + "<br/>");
            Response.Write("Format specifiers for integral or floating-point types:" + "<br/>");
            Response.Write(msgCurrency + floatingVal.ToString("C", ci) + "<br/>");

            /*
             Culture Name	Culture Identifier	Language-Country/Region
"" (empty string)	0x007F	invariant culture
af	0x0036	Afrikaans
af-ZA	0x0436	Afrikaans - South Africa
sq	0x001C	Albanian
sq-AL	0x041C	Albanian - Albania
ar	0x0001	Arabic
ar-DZ	0x1401	Arabic - Algeria
ar-BH	0x3C01	Arabic - Bahrain
ar-EG	0x0C01	Arabic - Egypt
ar-IQ	0x0801	Arabic - Iraq
ar-JO	0x2C01	Arabic - Jordan
ar-KW	0x3401	Arabic - Kuwait
ar-LB	0x3001	Arabic - Lebanon
ar-LY	0x1001	Arabic - Libya
ar-MA	0x1801	Arabic - Morocco
ar-OM	0x2001	Arabic - Oman
ar-QA	0x4001	Arabic - Qatar
ar-SA	0x0401	Arabic - Saudi Arabia
ar-SY	0x2801	Arabic - Syria
ar-TN	0x1C01	Arabic - Tunisia
ar-AE	0x3801	Arabic - United Arab Emirates
ar-YE	0x2401	Arabic - Yemen
hy	0x002B	Armenian
hy-AM	0x042B	Armenian - Armenia
az	0x002C	Azeri
az-AZ-Cyrl	0x082C	Azeri (Cyrillic) - Azerbaijan
az-AZ-Latn	0x042C	Azeri (Latin) - Azerbaijan
eu	0x002D	Basque
eu-ES	0x042D	Basque - Basque
be	0x0023	Belarusian
be-BY	0x0423	Belarusian - Belarus
bg	0x0002	Bulgarian
bg-BG	0x0402	Bulgarian - Bulgaria
ca	0x0003	Catalan
ca-ES	0x0403	Catalan - Catalan
zh-HK	0x0C04	Chinese - Hong Kong SAR
zh-MO	0x1404	Chinese - Macau SAR
zh-CN	0x0804	Chinese - China
zh-CHS	0x0004	Chinese (Simplified)
zh-SG	0x1004	Chinese - Singapore
zh-TW	0x0404	Chinese - Taiwan
zh-CHT	0x7C04	Chinese (Traditional)
hr	0x001A	Croatian
hr-HR	0x041A	Croatian - Croatia
cs	0x0005	Czech
cs-CZ	0x0405	Czech - Czech Republic
da	0x0006	Danish
da-DK	0x0406	Danish - Denmark
div	0x0065	Dhivehi
div-MV	0x0465	Dhivehi - Maldives
nl	0x0013	Dutch
nl-BE	0x0813	Dutch - Belgium
nl-NL	0x0413	Dutch - The Netherlands
en	0x0009	English
en-AU	0x0C09	English - Australia
en-BZ	0x2809	English - Belize
en-CA	0x1009	English - Canada
en-CB	0x2409	English - Caribbean
en-IE	0x1809	English - Ireland
en-JM	0x2009	English - Jamaica
en-NZ	0x1409	English - New Zealand
en-PH	0x3409	English - Philippines
en-ZA	0x1C09	English - South Africa
en-TT	0x2C09	English - Trinidad and Tobago
en-GB	0x0809	English - United Kingdom
en-US	0x0409	English - United States
en-ZW	0x3009	English - Zimbabwe
et	0x0025	Estonian
et-EE	0x0425	Estonian - Estonia
fo	0x0038	Faroese
fo-FO	0x0438	Faroese - Faroe Islands
fa	0x0029	Farsi
fa-IR	0x0429	Farsi - Iran
fi	0x000B	Finnish
fi-FI	0x040B	Finnish - Finland
fr	0x000C	French
fr-BE	0x080C	French - Belgium
fr-CA	0x0C0C	French - Canada
fr-FR	0x040C	French - France
fr-LU	0x140C	French - Luxembourg
fr-MC	0x180C	French - Monaco
fr-CH	0x100C	French - Switzerland
gl	0x0056	Galician
gl-ES	0x0456	Galician - Galician
ka	0x0037	Georgian
ka-GE	0x0437	Georgian - Georgia
de	0x0007	German
de-AT	0x0C07	German - Austria
de-DE	0x0407	German - Germany
de-LI	0x1407	German - Liechtenstein
de-LU	0x1007	German - Luxembourg
de-CH	0x0807	German - Switzerland
el	0x0008	Greek
el-GR	0x0408	Greek - Greece
gu	0x0047	Gujarati
gu-IN	0x0447	Gujarati - India
he	0x000D	Hebrew
he-IL	0x040D	Hebrew - Israel
hi	0x0039	Hindi
hi-IN	0x0439	Hindi - India
hu	0x000E	Hungarian
hu-HU	0x040E	Hungarian - Hungary
is	0x000F	Icelandic
is-IS	0x040F	Icelandic - Iceland
id	0x0021	Indonesian
id-ID	0x0421	Indonesian - Indonesia
it	0x0010	Italian
it-IT	0x0410	Italian - Italy
it-CH	0x0810	Italian - Switzerland
ja	0x0011	Japanese
ja-JP	0x0411	Japanese - Japan
kn	0x004B	Kannada
kn-IN	0x044B	Kannada - India
kk	0x003F	Kazakh
kk-KZ	0x043F	Kazakh - Kazakhstan
kok	0x0057	Konkani
kok-IN	0x0457	Konkani - India
ko	0x0012	Korean
ko-KR	0x0412	Korean - Korea
ky	0x0040	Kyrgyz
ky-KZ	0x0440	Kyrgyz - Kazakhstan
lv	0x0026	Latvian
lv-LV	0x0426	Latvian - Latvia
lt	0x0027	Lithuanian
lt-LT	0x0427	Lithuanian - Lithuania
mk	0x002F	Macedonian
mk-MK	0x042F	Macedonian - FYROM
ms	0x003E	Malay
ms-BN	0x083E	Malay - Brunei
ms-MY	0x043E	Malay - Malaysia
mr	0x004E	Marathi
mr-IN	0x044E	Marathi - India
mn	0x0050	Mongolian
mn-MN	0x0450	Mongolian - Mongolia
no	0x0014	Norwegian
nb-NO	0x0414	Norwegian (Bokml) - Norway
nn-NO	0x0814	Norwegian (Nynorsk) - Norway
pl	0x0015	Polish
pl-PL	0x0415	Polish - Poland
pt	0x0016	Portuguese
pt-BR	0x0416	Portuguese - Brazil
pt-PT	0x0816	Portuguese - Portugal
pa	0x0046	Punjabi
pa-IN	0x0446	Punjabi - India
ro	0x0018	Romanian
ro-RO	0x0418	Romanian - Romania
ru	0x0019	Russian
ru-RU	0x0419	Russian - Russia
sa	0x004F	Sanskrit
sa-IN	0x044F	Sanskrit - India
sr-SP-Cyrl	0x0C1A	Serbian (Cyrillic) - Serbia
sr-SP-Latn	0x081A	Serbian (Latin) - Serbia
sk	0x001B	Slovak
sk-SK	0x041B	Slovak - Slovakia
sl	0x0024	Slovenian
sl-SI	0x0424	Slovenian - Slovenia
es	0x000A	Spanish
es-AR	0x2C0A	Spanish - Argentina
es-BO	0x400A	Spanish - Bolivia
es-CL	0x340A	Spanish - Chile
es-CO	0x240A	Spanish - Colombia
es-CR	0x140A	Spanish - Costa Rica
es-DO	0x1C0A	Spanish - Dominican Republic
es-EC	0x300A	Spanish - Ecuador
es-SV	0x440A	Spanish - El Salvador
es-GT	0x100A	Spanish - Guatemala
es-HN	0x480A	Spanish - Honduras
es-MX	0x080A	Spanish - Mexico
es-NI	0x4C0A	Spanish - Nicaragua
es-PA	0x180A	Spanish - Panama
es-PY	0x3C0A	Spanish - Paraguay
es-PE	0x280A	Spanish - Peru
es-PR	0x500A	Spanish - Puerto Rico
es-ES	0x0C0A	Spanish - Spain
es-UY	0x380A	Spanish - Uruguay
es-VE	0x200A	Spanish - Venezuela
sw	0x0041	Swahili
sw-KE	0x0441	Swahili - Kenya
sv	0x001D	Swedish
sv-FI	0x081D	Swedish - Finland
sv-SE	0x041D	Swedish - Sweden
syr	0x005A	Syriac
syr-SY	0x045A	Syriac - Syria
ta	0x0049	Tamil
ta-IN	0x0449	Tamil - India
tt	0x0044	Tatar
tt-RU	0x0444	Tatar - Russia
te	0x004A	Telugu
te-IN	0x044A	Telugu - India
th	0x001E	Thai
th-TH	0x041E	Thai - Thailand
tr	0x001F	Turkish
tr-TR	0x041F	Turkish - Turkey
uk	0x0022	Ukrainian
uk-UA	0x0422	Ukrainian - Ukraine
ur	0x0020	Urdu
ur-PK	0x0420	Urdu - Pakistan
uz	0x0043	Uzbek
uz-UZ-Cyrl	0x0843	Uzbek (Cyrillic) - Uzbekistan
uz-UZ-Latn	0x0443	Uzbek (Latin) - Uzbekistan
vi	0x002A	Vietnamese
vi-VN	0x042A	Vietnamese - Vietnam
             */
        }
    }
}

 

posted @ 2012-05-10 17:29  ®Geovin Du Dream Park™  阅读(896)  评论(0编辑  收藏  举报