2016-08-08 10 views
5

Chcę przekonwertować DateTime.Now na format yyyy-mm-dd, ponieważ jest to jedyny format, który mogę użyć w moim zapytaniu, które chcę dołączyć.
Domyślnie format z DateTime.Now wygląda na 5/1/2008 6:32:06 PM.
jeśli chcę zmienić format nim do yyyyMMdd mogę korzystać z tej linii kodu:Format DateTime.Now do rrrr-mm-dd

var dateString1 = DateTime.Now.ToString("yyyyMMdd"); 

Ale gdy próbuję to samo dla tego formatu yyyy-mm-dd jak poniżej:

var dateString2 = DateTime.Now.ToString("yyyy-mm-dd"); 

na Wynik, który otrzymałem, jest nieprawidłowy. następujących linii kodu:

var dateString1 = DateTime.Now.ToString("yyyyMMdd"); 
var dateString2 = DateTime.Now.ToString("yyyy-mm-dd"); 

Console.WriteLine("yyyyMMdd " + dateString1); 
Console.WriteLine("yyyy-mm-dd "+ dateString2); 

otrzymuję następujący wynik:

enter image description here

co jest złe dla drugiego przypadku.
Czego mi brakuje?

+0

'mm' jest kilka minut. To, czego potrzebujesz, to "MM", jak w twoim pierwszym formacie. – uTeisT

Odpowiedz

7

Według specyfikacji formatu msdnMM oznacza miesiąc i mm - na minuty.

"mm" | Minuta, od 00 do 59.

"MM" | Miesiąc, od 01 do 12.

więc kod powinien wyglądać następująco:

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 będzie uzyskać pożądany wynik

+0

Bardzo jasne wyjaśnienie, dzięki. – eg16

7
var dateString1 = DateTime.Now.ToString("yyyyMMdd"); 
    var dateString2 = DateTime.Now.ToString("yyyy-MM-dd"); 

    Console.WriteLine("yyyyMMdd " + dateString1); 
    Console.WriteLine("yyyy-MM-dd "+ dateString2); 

Używasz "mm" zamiast "MM" w drugim formacie. mm to minuty, MM to miesiąc.

+0

Dzięki za rozwiązanie. To rozwiązało mój problem, ale @Mikhail wyjaśnił powód, więc przyjąłem jego odpowiedź i głosowałem również na ciebie. Dzięki – eg16

2

Twoja chybienie jest małymi literami "m" w drugim formacie, które określają MINUTY, ale dla MIESIĄCA potrzebujesz "M" zamiast "m".

+0

Dzięki za przydatne informacje. – eg16

Powiązane problemy