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 strDatestring strDate = txtDate.Text; // Create a DateTimeFormatInfo object based on the DateTimeFormat// of English Great BritainDateTimeFormatInfo 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.