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);
次の結果が得られます。
後者の場合は間違っています。
何が欠けていますか?
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);
そして、あなたは望ましい結果を得るでしょう
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は月を表します。
ミスは2番目の形式の小文字の「m」で、MINUTESを決定しますが、MONTHSには「m」ではなく「M」が必要です。