Click here to Skip to main content
15,866,422 members
Articles / Web Development / ASP.NET

International Date Formats

Rate me:
Please Sign up or sign in to vote.
1.18/5 (5 votes)
15 Mar 2018CPOL8 min read 10.8K   3   3
This article explains different date formats based on locale

Introduction

This is a sequel to an article I wrote 8 years ago about number formats in .Net. This one is about Date formats in .Net. Here is the code lists all of the number formats out there in VB.NET:

VB.NET
Dim oHashtable As New Hashtable
        For Each oCultureInfo As System.Globalization.CultureInfo _
           In System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures)
            
            Dim sKey As String = oCultureInfo.Name
            Dim sName As String = oCultureInfo.EnglishName
            
            Try
                Dim d As Date = DateTime.Parse("1/2/3", oCultureInfo)
                Dim sFormat As String = d.ToString()
                
                If oHashtable.ContainsKey(sFormat) = False Then
                    oHashtable.Add(sFormat, sKey & " - " & sName)
                Else
                    oHashtable(sFormat) += "<br>" & sKey & " - " & sName
                End If
            Catch ex As Exception
            End Try
        Next
        
        Dim sb As New System.Text.StringBuilder()
        Response.Write("<table border=1>" & vbCrLf)
        Response.Write("<tr><th>Format</th><th>Country</th></tr>" & vbCrLf)
        For Each oEntry As DictionaryEntry In oHashtable
            Response.Write("<tr><td valign=top>" & oEntry.Key & "</td><td>" & _
              oEntry.Value & "</td></tr>" & vbCrLf)
        Next
        Response.Write("</table>")       

This code converts "1/2/3" to date using different cultures.

2/1/2003 is the most common
2/3/2001 is second
1/2/2003 is the least common format and is used by US.

One interesting finding is that some cultures (Arabic, Pashto, Dari and Divehi ) cannot convert “1/2/3” at all (you get 11/16/1982 and 11/17/1982). I am not sure if this has to do with the right-to-left writing. Thai converts “3” to 1960.

Here is the table this VB.NET code returns:

Format Country
1/2/2003 12:00:00 AM en - English
fa - Persian
sw - Kiswahili
ne - Nepali
fil - Filipino
moh - Mohawk
- Invariant Language (Invariant Country)
sah - Yakut
rw - Kinyarwanda
en-US - English (United States)
fa-IR - Persian
sw-KE - Kiswahili (Kenya)
ne-NP - Nepali (Nepal)
fil-PH - Filipino (Philippines)
moh-CA - Mohawk (Mohawk)
sah-RU - Yakut (Russia)
rw-RW - Kinyarwanda (Rwanda)
es-PA - Spanish (Panama)
en-029 - English (Caribbean)
en-ZW - English (Zimbabwe)
en-PH - English (Republic of the Philippines)
es-US - Spanish (United States)
2/1/2003 12:00:00 AM bg - Bulgarian
ca - Catalan
cs - Czech
da - Danish
de - German
el - Greek
es - Spanish
fi - Finnish
fr - French
he - Hebrew
is - Icelandic
it - Italian
nl - Dutch
no - Norwegian
pt - Portuguese
rm - Romansh
ro - Romanian
ru - Russian
hr - Croatian
sk - Slovak
tr - Turkish
ur - Urdu
id - Indonesian
uk - Ukrainian
be - Belarusian
sl - Slovenian
et - Estonian
tg - Tajik
vi - Vietnamese
hy - Armenian
az - Azeri
hsb - Upper Sorbian
mk - Macedonian (FYROM)
ka - Georgian
fo - Faroese
hi - Hindi
mt - Maltese
se - Sami (Northern)
ga - Irish
ms - Malay
kk - Kazakh
ky - Kyrgyz
tk - Turkmen
uz - Uzbek
tt - Tatar
bn - Bengali
pa - Punjabi
gu - Gujarati
or - Oriya
ta - Tamil
te - Telugu
kn - Kannada
ml - Malayalam
as - Assamese
mr - Marathi
sa - Sanskrit
cy - Welsh
lo - Lao
gl - Galician
kok - Konkani
syr - Syriac
iu - Inuktitut
am - Amharic
tzm - Tamazight
fy - Frisian
ha - Hausa
yo - Yoruba
quz - Quechua
ba - Bashkir
lb - Luxembourgish
kl - Greenlandic
ig - Igbo
arn - Mapudungun
br - Breton
mi - Maori
oc - Occitan
co - Corsican
gsw - Alsatian
qut - K'iche
wo - Wolof
gd - Scottish Gaelic
bg-BG - Bulgarian (Bulgaria)
ca-ES - Catalan (Catalan)
cs-CZ - Czech (Czech Republic)
da-DK - Danish (Denmark)
de-DE - German (Germany)
el-GR - Greek (Greece)
fi-FI - Finnish (Finland)
fr-FR - French (France)
he-IL - Hebrew (Israel)
is-IS - Icelandic (Iceland)
it-IT - Italian (Italy)
nl-NL - Dutch (Netherlands)
nb-NO - Norwegian, Bokmål (Norway)
pt-BR - Portuguese (Brazil)
rm-CH - Romansh (Switzerland)
ro-RO - Romanian (Romania)
ru-RU - Russian (Russia)
hr-HR - Croatian (Croatia)
sk-SK - Slovak (Slovakia)
tr-TR - Turkish (Turkey)
ur-PK - Urdu (Islamic Republic of Pakistan)
id-ID - Indonesian (Indonesia)
uk-UA - Ukrainian (Ukraine)
be-BY - Belarusian (Belarus)
sl-SI - Slovenian (Slovenia)
et-EE - Estonian (Estonia)
tg-Cyrl-TJ - Tajik (Cyrillic, Tajikistan)
vi-VN - Vietnamese (Vietnam)
hy-AM - Armenian (Armenia)
az-Latn-AZ - Azeri (Latin, Azerbaijan)
hsb-DE - Upper Sorbian (Germany)
mk-MK - Macedonian (Former Yugoslav Republic of Macedonia)
ka-GE - Georgian (Georgia)
fo-FO - Faroese (Faroe Islands)
hi-IN - Hindi (India)
mt-MT - Maltese (Malta)
se-NO - Sami, Northern (Norway)
ms-MY - Malay (Malaysia)
kk-KZ - Kazakh (Kazakhstan)
ky-KG - Kyrgyz (Kyrgyzstan)
tk-TM - Turkmen (Turkmenistan)
uz-Latn-UZ - Uzbek (Latin, Uzbekistan)
tt-RU - Tatar (Russia)
bn-IN - Bengali (India)
pa-IN - Punjabi (India)
gu-IN - Gujarati (India)
or-IN - Oriya (India)
ta-IN - Tamil (India)
te-IN - Telugu (India)
kn-IN - Kannada (India)
ml-IN - Malayalam (India)
as-IN - Assamese (India)
mr-IN - Marathi (India)
sa-IN - Sanskrit (India)
cy-GB - Welsh (United Kingdom)
lo-LA - Lao (Lao P.D.R.)
gl-ES - Galician (Galician)
kok-IN - Konkani (India)
syr-SY - Syriac (Syria)
iu-Cans-CA - Inuktitut (Syllabics, Canada)
am-ET - Amharic (Ethiopia)
fy-NL - Frisian (Netherlands)
ha-Latn-NG - Hausa (Latin, Nigeria)
yo-NG - Yoruba (Nigeria)
quz-BO - Quechua (Bolivia)
ba-RU - Bashkir (Russia)
lb-LU - Luxembourgish (Luxembourg)
kl-GL - Greenlandic (Greenland)
ig-NG - Igbo (Nigeria)
arn-CL - Mapudungun (Chile)
br-FR - Breton (France)
mi-NZ - Maori (New Zealand)
oc-FR - Occitan (France)
co-FR - Corsican (France)
gsw-FR - Alsatian (France)
qut-GT - K'iche (Guatemala)
wo-SN - Wolof (Senegal)
gd-GB - Scottish Gaelic (United Kingdom)
ar-IQ - Arabic (Iraq)
de-CH - German (Switzerland)
en-GB - English (United Kingdom)
es-MX - Spanish (Mexico)
fr-BE - French (Belgium)
it-CH - Italian (Switzerland)
nl-BE - Dutch (Belgium)
nn-NO - Norwegian, Nynorsk (Norway)
pt-PT - Portuguese (Portugal)
sr-Latn-CS - Serbian (Latin, Serbia and Montenegro (Former))
sv-FI - Swedish (Finland)
az-Cyrl-AZ - Azeri (Cyrillic, Azerbaijan)
dsb-DE - Lower Sorbian (Germany)
ga-IE - Irish (Ireland)
ms-BN - Malay (Brunei Darussalam)
uz-Cyrl-UZ - Uzbek (Cyrillic, Uzbekistan)
bn-BD - Bengali (Bangladesh)
iu-Latn-CA - Inuktitut (Latin, Canada)
tzm-Latn-DZ - Tamazight (Latin, Algeria)
quz-EC - Quechua (Ecuador)
ar-EG - Arabic (Egypt)
zh-HK - Chinese (Traditional, Hong Kong S.A.R.)
de-AT - German (Austria)
en-AU - English (Australia)
es-ES - Spanish (Spain, International Sort)
sr-Cyrl-CS - Serbian (Cyrillic, Serbia and Montenegro (Former))
se-FI - Sami, Northern (Finland)
quz-PE - Quechua (Peru)
ar-LY - Arabic (Libya)
zh-SG - Chinese (Simplified, Singapore)
de-LU - German (Luxembourg)
en-CA - English (Canada)
es-GT - Spanish (Guatemala)
fr-CH - French (Switzerland)
hr-BA - Croatian (Latin, Bosnia and Herzegovina)
smj-NO - Sami, Lule (Norway)
ar-DZ - Arabic (Algeria)
zh-MO - Chinese (Traditional, Macao S.A.R.)
de-LI - German (Liechtenstein)
en-NZ - English (New Zealand)
es-CR - Spanish (Costa Rica)
fr-LU - French (Luxembourg)
bs-Latn-BA - Bosnian (Latin, Bosnia and Herzegovina)
ar-MA - Arabic (Morocco)
en-IE - English (Ireland)
fr-MC - French (Monaco)
sr-Latn-BA - Serbian (Latin, Bosnia and Herzegovina)
sma-NO - Sami, Southern (Norway)
ar-TN - Arabic (Tunisia)
es-DO - Spanish (Dominican Republic)
sr-Cyrl-BA - Serbian (Cyrillic, Bosnia and Herzegovina)
ar-OM - Arabic (Oman)
en-JM - English (Jamaica)
es-VE - Spanish (Bolivarian Republic of Venezuela)
bs-Cyrl-BA - Bosnian (Cyrillic, Bosnia and Herzegovina)
sms-FI - Sami, Skolt (Finland)
ar-YE - Arabic (Yemen)
es-CO - Spanish (Colombia)
sr-Latn-RS - Serbian (Latin, Serbia)
smn-FI - Sami, Inari (Finland)
ar-SY - Arabic (Syria)
en-BZ - English (Belize)
es-PE - Spanish (Peru)
sr-Cyrl-RS - Serbian (Cyrillic, Serbia)
ar-JO - Arabic (Jordan)
en-TT - English (Trinidad and Tobago)
es-AR - Spanish (Argentina)
sr-Latn-ME - Serbian (Latin, Montenegro)
ar-LB - Arabic (Lebanon)
es-EC - Spanish (Ecuador)
sr-Cyrl-ME - Serbian (Cyrillic, Montenegro)
ar-KW - Arabic (Kuwait)
es-CL - Spanish (Chile)
ar-AE - Arabic (U.A.E.)
es-UY - Spanish (Uruguay)
ar-BH - Arabic (Bahrain)
es-PY - Spanish (Paraguay)
ar-QA - Arabic (Qatar)
en-IN - English (India)
es-BO - Spanish (Bolivia)
en-MY - English (Malaysia)
es-SV - Spanish (El Salvador)
en-SG - English (Singapore)
es-HN - Spanish (Honduras)
es-NI - Spanish (Nicaragua)
es-PR - Spanish (Puerto Rico)
bs-Cyrl - Bosnian (Cyrillic)
bs-Latn - Bosnian (Latin)
sr-Cyrl - Serbian (Cyrillic)
sr-Latn - Serbian (Latin)
smn - Sami (Inari)
az-Cyrl - Azeri (Cyrillic)
sms - Sami (Skolt)
nn - Norwegian (Nynorsk)
bs - Bosnian
az-Latn - Azeri (Latin)
uz-Cyrl - Uzbek (Cyrillic)
iu-Cans - Inuktitut (Syllabics)
zh-Hant - Chinese (Traditional)
nb - Norwegian (Bokmål)
sr - Serbian
tg-Cyrl - Tajik (Cyrillic)
dsb - Lower Sorbian
uz-Latn - Uzbek (Latin)
iu-Latn - Inuktitut (Latin)
tzm-Latn - Tamazight (Latin)
ha-Latn - Hausa (Latin)
zh-CHT - Chinese (Traditional) Legacy
2/1/1960 12:00:00 AM th - Thai
th-TH - Thai (Thailand)
11/17/1982 12:00:00 AM ps - Pashto
dv - Divehi
prs - Dari
ps-AF - Pashto (Afghanistan)
dv-MV - Divehi (Maldives)
prs-AF - Dari (Afghanistan)
2/3/2001 12:00:00 AM zh-Hans - Chinese (Simplified)
hu - Hungarian
ja - Japanese
ko - Korean
pl - Polish
sq - Albanian
sv - Swedish
lv - Latvian
lt - Lithuanian
eu - Basque
tn - Setswana
xh - isiXhosa
zu - isiZulu
af - Afrikaans
mn - Mongolian
bo - Tibetan
km - Khmer
si - Sinhala
nso - Sesotho sa Leboa
ii - Yi
ug - Uyghur
zh-TW - Chinese (Traditional, Taiwan)
hu-HU - Hungarian (Hungary)
ja-JP - Japanese (Japan)
ko-KR - Korean (Korea)
pl-PL - Polish (Poland)
sq-AL - Albanian (Albania)
sv-SE - Swedish (Sweden)
lv-LV - Latvian (Latvia)
lt-LT - Lithuanian (Lithuania)
eu-ES - Basque (Basque)
tn-ZA - Setswana (South Africa)
xh-ZA - isiXhosa (South Africa)
zu-ZA - isiZulu (South Africa)
af-ZA - Afrikaans (South Africa)
mn-MN - Mongolian (Cyrillic, Mongolia)
bo-CN - Tibetan (PRC)
km-KH - Khmer (Cambodia)
si-LK - Sinhala (Sri Lanka)
nso-ZA - Sesotho sa Leboa (South Africa)
ii-CN - Yi (PRC)
ug-CN - Uyghur (PRC)
zh-CN - Chinese (Simplified, PRC)
se-SE - Sami, Northern (Sweden)
mn-Mong-CN - Mongolian (Traditional Mongolian, PRC)
fr-CA - French (Canada)
smj-SE - Sami, Lule (Sweden)
en-ZA - English (South Africa)
sma-SE - Sami, Southern (Sweden)
zh - Chinese
sma - Sami (Southern)
mn-Cyrl - Mongolian (Cyrillic)
smj - Sami (Lule)
mn-Mong - Mongolian (Traditional Mongolian)
zh-CHS - Chinese (Simplified) Legacy
11/16/1982 12:00:00 AM ar - Arabic
ar-SA - Arabic (Saudi Arabia)

 

I hope someone might find this information useful.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
Igor is a business intelligence consultant working in Tampa, Florida. He has a BS in Finance from University of South Carolina and Masters in Information Management System from University of South Florida. He also has following professional certifications: MCSD, MCDBA, MCAD.

Comments and Discussions

 
PraiseInternational Date Formats Pin
Member 1374070122-Mar-18 0:54
Member 1374070122-Mar-18 0:54 
QuestionArticle is good but need more example how you have used in project. Pin
Saineshwar Bageri18-Mar-18 20:15
Saineshwar Bageri18-Mar-18 20:15 
SuggestionNot a bad article Pin
MadMyche16-Mar-18 3:24
professionalMadMyche16-Mar-18 3:24 
Only suggestion I would have had would have been to better state what "1/2/3" actually was meant to be in a textual format; such as "January 2nd, 2003"


Director of Transmogrification Services
Shinobi of Query Language
Master of Yoda Conditional

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.