Suppose you are developing a Web page which contains a text field in which a user can enter a date. The problem is that in different parts of the world people enter dates in different formats. By default, .NET accepts dates in English US format (
MM/DD/YYYY). But what if one of your users is in the UK and wants to enter a date in
DD/MM/YYYY format? In this case, if the user entered
23/11/1978, an exception would be thrown indicating that the month cannot be
23. Worse still, what if your user entered
01/02/2003 thinking they were entering the first of Februrary 2003 when really they entered the second of January 2003?
Well, there is a simple solution to this. Once you read the text from the text field, you can interpret the contents of that text field in any culture supported by .NET in this way:
// txtDate is a textfield from where we are getting the date
// entered by the user and storing it in strDate
string strDate = txtDate.Text;
// Create a DateTimeFormatInfo object based on the DateTimeFormat
// of English Great Britain
DateTimeFormatInfo myDTFI =
new CultureInfo("en-GB", false).DateTimeFormat;
// Now, when you create your DateTime object pass in the
// DateTimeFormatInfo object so that strDate is interpreted as
// DD/MM/YYYY.
DateTime dt = Convert.ToDateTime(strDate, myDTFI);
For a full list of cultures supported by .NET, please refer to the .NET documentation for the
CultureInfo class.