I am trying to convert a string into datetime with the following C# code,
DateTime dTo = DateTime.ParseExact(dateTo, "mm/dd/yyyy", CultureInfo.InvariantCulture);
eachtime I pass dateTo as 1/1/2010 it fails, instead it needs the string to be 01/01/2010.
What string format should I use to support both 01/01/2010 and 1/1/2010?
Using the following date format expression will allow you to use either single or double digit day and month elements.
Note that the capital
M
is significant - a lower casem
is the placeholder for minutes.You will find more information related to date format strings here.
You can use the following Powershell command to test them.
Capital M is month, little m is mins i think.
But to the point of the question, use Parse. ParseExact implies you know the exact format of the input.
You could try this format:
MM/dd/yyyy
, but I think there's no single format string that could support both inputs. You could test if the length of yourdateTo
string is less than 10 characters useM/d/yyyy
, otherwiseMM/dd/yyyy
.