Updated July 1, 2023
Introduction to String to Date C#
In C#, the 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 the 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()
The syntax for each Parsing Method
Given below is the syntax for each of these parsing methods:
public static DateTimeParse(string str);
Here, Parse() method takes a string argument, which represents the date and time to convert. It returns the DateTime object, equivalent to the 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 a string representation of the date and time to convert, format specifies the required str format, and formatProvider provides the culture-specific format information for str. It returns the DateTime object, equivalent to the date and time represented by str.
public static bool TryParse(string str, out DateTimeresult);
Here, str represents the date and time to convert, and the resulting value will be stored in the variable result. This method will return true if the conversion succeeds. Otherwise, it will return false.
public static bool TryParseExact(string str, string[] strFormats, IFormatProviderformatProvider,
DateTimeStylesstyle, out DateTimeresult);
This method will return true if the conversion succeeds. Otherwise, it will return false.
How to Convert String to Date in C#?
Several methods are available to convert a string to date in C#. The string to be converted must be a valid representation of date and time, and it should not be null or empty. On successful conversion, these methods return an object of DateTime.
The methods used to parse the 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 the class CultureInfo, which implements IFormatProvider. Now, this method will convert the input string to an equivalent DateTime object using the provided culture-specific format information and by applying the given DateTimeStyles value. On successful conversion, the resulting 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);
The string representation of the date passed to this method should exactly match any of the specified formats contained in a string array.
- DateTimeTryParse(string, out DateTime);
DateTime.TryParse(string, IFormatProvider, DateTimeStyles, out DateTime);
The types of parameters in this method are the 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 resulting 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);
This method converts the input string to date using the provided culture-specific format information and style. This method returns true on successful conversion; otherwise, it returns false.
Example of String to Date C#
Below are the examples.
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 a DateTime object using parsing methods provided by the 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 examples. You may also have a look at the following articles to learn more –