3

この形式で日付を表示したい:

  • MM/dd/yyyy HH:mm:ss tt

例えば ​​:

  • 2011/01/04 03:34:03 午後

しかし、次のコードに問題があります

class Program
{
    static void Main(string[] args)
    {
        DateTime dt = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 0, 0, 0);
        string displayedDate = dt.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
        Console.WriteLine(displayedDate);
        Console.Read();
    }
}

ディスプレイ:

2011/01/04 12:00:00午前

それ以外の

2011/01/04 00:00:00午前

誰でも理由を知っていますか?

ありがとうございました !

4

3 に答える 3

12

24時間形式ではなく、12時間形式を指定したためです。

メソッドのドキュメントにはDateTime.ToString、フォーマット指定子とその意味の完全な表が記載されています。時間の選択肢は次のとおりです。

「h」      1から12までの12時間制を
使用した時間。 「hh」     01から12までの12時間制を
使用した時。 「H」      0から23までの24時間制を使用した時。 。
 "HH"     00から23までの24時間制を使用した時間。


したがって、hhカスタム形式指定子の代わりに、を使用する必要がありますHH。この行を変更します。

string displayedDate = dt.ToString("MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

これに:

string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
于 2011-01-14T06:41:01.283 に答える
1

24時間ではなく12時間形式が必要であると指定したのは、そのためです。あなたはHH24時間使用する必要があります。参考資料をご覧ください。これはあなたのために働くはずです:

string displayedDate = dt.ToString("MM/dd/yyyy HH:mm:ss tt", CultureInfo.InvariantCulture);
于 2011-01-14T06:42:11.860 に答える
0

ToString() 呼び出しで「hh」を「H」に変更する必要があります。

于 2011-01-14T06:39:48.787 に答える