web-dev-qa-db-ja.com

DateTime.Nowをyyyy-mm-ddにフォーマットする

DateTime.Nowをyyyy-mm-ddの形式に変換したいのは、これがクエリに含めることができる唯一の形式だからです。
DateTime.Nowのデフォルトのformatは、5/1/2008 6:32:06 PMのように見えます。
フォーマットをyyyyMMddに変更したい場合、次のコード行を使用できます。

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

しかし、私はこのyyyy-mm-ddフォーマットに対して以下のように同じことをしようとすると:

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

私が得る結果は間違っています。次のコード行の場合:

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

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

次の結果が得られます。

enter image description here

後者の場合は間違っています。
何が欠けていますか?

13
etrupja

msdnMMによると、書式指定子は月を表し、mm-は分を表します。

「mm」| 00から59までの分。

「MM」| 01〜12の月。

したがって、コードは次のようになります。

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

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

そして、あなたは望ましい結果を得るでしょう

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

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

2番目の形式で「MM」の代わりに「mm」を使用しています。 mmは分、MMは月を表します。

8
Bojan B

ミスは2番目の形式の小文字の「m」で、MINUTESを決定しますが、MONTHSには「m」ではなく「M」が必要です。

2
Nigrimmist