Introduction to String to Date C#
In C#, string representation of date and time can be converted to its equivalent DateTime object using some parse methods provided by the struct DateTime. These methods require the string representation of date to be converted and along with this we can also specify culture specific format information.
Given below are the methods:
- DateTime.Parse()
- DateTime.ParseExact()
- DateTime.TryParse()
- DateTime.TryParseExact()
While using any of these methods, we must ensure that the string passed to the method is not null or empty and the string is valid representation of the expected date and time.
Syntax for each Parsing Methods
Given below is the syntax for each of these parsing methods:
public static DateTimeParse(string str);
Here, Parse() method takes a string argument which is a string representation of date and time to convert. It returns DateTime object which is equivalent to date and time represented by str.
public static DateTimeParseExact(string str, string strFormat, IFormatProviderformatProvider);
Here, three arguments are passed to the method where str is string representation of date and time to convert, strFormat specifies the required format of str and formatProvider provides the culture specific format information for str. It returns DateTime object which is equivalent to date and time represented by str.
public static bool TryParse(string str, out DateTimeresult);
Here, str is string representation of date and time to convert and the resulted value will be stored in the variable result. This method will return true if the conversion succeeds otherwise it will return false.

4.6 (13,682 ratings)
View Course
public static bool TryParseExact(string str, string[] strFormats, IFormatProviderformatProvider,
DateTimeStylesstyle, out DateTimeresult);
Here, str is string representation of date and time to convert, strFormats is an array of specified formats for str, formatProvider provides culture specific format information about str, style is used to specify the formatting options and the resulted value will be stored in the variable result. This method will return true if the conversion succeeds otherwise it will return false.
How to Convert String to Date in C#?
There are a number of methods available to convert a string to date in C#. The string to be converted needs to be a valid representation of date and time and it should not be either null or empty. On successful conversion these methods return an object of DateTime.
The methods used to parse string to date are as follows:
- DateTime.Parse(string);
DateTime.Parse(string, IFormatProvider);
DateTime.Parse(string, IFormatProvider, DateTimeStyles);
The above three methods are the overloaded forms of Parse() method. All of them return a System.DateTime object on successful conversion.
Example:
CultureInfo provider = newCultureInfo("en-US");
DateTime date = DateTime.Parse("08/08/2020", provider,
DateTimeStyles.AdjustToUniversal);
In the above statements, we first created an object of class CultureInfo which implements IFormatProvider. Then, we convert the string representation of a date using Parse() method by passing the string to be converted, the object of IFormatProvider (provider) we created earlier and by passing a value for the enumDateTimeStyles.
Now, this method will convert the input string to equivalent DateTime object using the provided culture specific format information and by applying the given DateTimeStyles value. On successful conversion the resulted DateTime object will be stored in the variable ‘date’.
- DateTime.ParseExact(string, string, IFormatProvider);
DateTime.ParseExact(string, string, IFormatProvider, DateTimeStyles);
DateTime.ParseExact(string, string[], IFormatProvider, DateTimeStyles);
The above three methods are the overloaded forms of ParseExact() method. All of them return a System.DateTime object on successful conversion.
Example:
string[] dateFormats = new[] { "yyyy/MM/dd", "MM/dd/yyyy",
"MM/dd/yyyyHH:mm:ss"};
CultureInfo provider = newCultureInfo("en-US");
DateTime date = DateTime.ParseExact("08/08/2020", dateFormats, provider,
DateTimeStyles.AdjustToUniversal);
In the above statements, we first created a string array which defines some date formats then we created an object of CultureInfo class and finally we called the ParseExact() method by passing the string to be converted to date, the string array to check for available date formats, the object of CultureInfo class we created earlier and a value from DateTimeStylesenum.
The string representation of date passed to this method should exactly match to any of the specified formats contained in string array.
- DateTimeTryParse(string, out DateTime);
DateTime.TryParse(string, IFormatProvider, DateTimeStyles, out DateTime);
The types of parameters in this method are same as we saw earlier. This method converts the input string to its equivalent DateTime object using the culture specific format information and the style passed to it and it returns true if the conversion is successful otherwise it returns false. The resulted DateTime value will be stored in the ‘out’ parameter of this method.
- DateTime.TryParseExact(string, string[], IFormatProvider, DateTimeStyles, out DateTime);
DateTime.TryParseExact(string, string, IFormatProvider, DateTimeStyles, out DateTime);
The second parameter in this method is used to specify date format. The input string to be converted should exactly match to this date format. This method converts input string to date using the provided culture specific format information and style. This method returns true on successful conversion otherwise it returns false. The resulted DateTime value of this method is stored in the ‘out’ parameter.
Example of String to Date C#
Given below is the example mentioned:
Code:
using System;
usingSystem.Globalization;
publicclassProgram
{
publicstaticvoidMain()
{
DateTime date;
string[] dateFormats = new[] { "yyyy/MM/dd", "MM/dd/yyyy",
"MM/dd/yyyyHH:mm:ss"};
CultureInfo provider = newCultureInfo("en-US");
try
{
//Parse()
date = DateTime.Parse("08/08/2020");
Console.WriteLine("\nParse() method: " + date);
//ParseExact()
date = DateTime.ParseExact("08/08/2020", dateFormats, provider,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine("\nParseExact() method: " + date);
}
catch (Exception ex)
{
Console.Write(ex.Message);
Console.ReadLine();
}
//TryParse()
if (DateTime.TryParse("08/08/2020", out date))
{
Console.WriteLine("\nTryParse() : " + date);
}
else
{
Console.WriteLine("Conversion failed");
}
//TryParseExact()
if (DateTime.TryParseExact("08/08/2020", dateFormats, provider,
DateTimeStyles.AdjustToUniversal, out date))
{
Console.WriteLine("\nTryParseExact() : " + date);
}
else
{
Console.WriteLine("Conversion failed");
}
Console.ReadLine();
}
}
Output:
Conclusion
In C#, a string can be converted to DateTime object using parsing methods provided by DateTime struct. Apart from these methods, we can convert a string to date using Convert. To DateTime() method which takes a string representation of a date as input and returns its equivalent DateTime object.
Recommended Articles
This is a guide to String to Date C#. Here we discuss how to convert string to date in C# with programming example. You may also have a look at the following articles to learn more –