Reputation: 2800
I want to convert the DateTime.Now to the format of yyyy-mm-dd
since that is the only format that i can use in my query that i want to include.
The default format
of DateTime.Now
looks like 5/1/2008 6:32:06 PM
.
If I want to change the format of it to yyyyMMdd
I could use this line of code:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
But, when I try the same for this yyyy-mm-dd
format like below:
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");
the result i get is wrong. For the following lines of code:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-mm-dd "+ dateString2);
I get the following result:
which is wrong for the second case.
What am i missing?
Upvotes: 54
Views: 172783
Reputation: 2111
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-MM-dd "+ dateString2);
You are using "mm" instead of "MM" in your second format. mm is for minutes, MM is for month.
Upvotes: 22
Reputation: 4261
According to msdn MM
format specifier stands for month and mm
- for minutes.
"mm" | The minute, from 00 through 59.
"MM" | The month, from 01 through 12.
So your code should look like the following:
var dateString1 = DateTime.Now.ToString("yyyyMMdd");
var dateString2 = DateTime.Now.ToString("yyyy-MM-dd");
Console.WriteLine("yyyyMMdd " + dateString1);
Console.WriteLine("yyyy-MM-dd "+ dateString2);
And you will get the desired result
Upvotes: 81
Reputation: 12386
Your miss is lower-case "m" in second format, that determine MINUTES, but you need "M" instead of "m" for MONTHS.
Upvotes: 5