3

アップデート

一般的な方法を使用して、現在の文化に応じて、英国または米国のいずれかの日時の値を 24 時間形式で表示したいと考えています。

コードは以下のとおりです(実際のコードではなく、質問専用です):

    var dt = new DateTime(2011, 4, 15, 17, 50, 40);        
    Console.WriteLine(dt.ToString("d", new CultureInfo("en-us")) + " "
        + dt.ToString("H:mm:ss", new CultureInfo("en-us")));
    Console.WriteLine(dt.ToString("G", new CultureInfo("en-gb")));

以下の結果:

4 2011/15/17
17:50:40 2011/15/04 17:50:40

正常に表示されます。

「H:mm:ss」を使用せずに時間を表示するより良い方法はありますか。米国の G は PM を表示することに注意してください。これは私が望んでいるものではありません。

US の月は 04 ではなく 4 です。04 で表示する方法はあります。.

アップデート

以下は、理想的には一般的な方法を使用して、私が望むものです:

米国: 2011 年 4 月 15 日 17:50:40
英国: 2011 年 4 月 15 日 17:50:40

4

3 に答える 3

2

これを試して。

DateTime dt = new DateTime(2011, 4, 15, 17, 50, 40);        
Console.WriteLine(dt.ToString("MM/dd/yyy H:mm:ss"));// US format
Console.WriteLine(dt.ToString("dd/MM/yyy H:mm:ss"));// UK format

MSDNのカスタムの日付と時刻の書式文字列

于 2012-05-20T22:09:08.313 に答える
1

このように独自のカスタム表示を作成できます。

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString(@"MM/dd/yy HH\:mm\:ss"));
Console.ReadLine();
// Displays 05/20/12 17:08:37

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2012-05-20T22:08:26.783 に答える
0

米国では、次のようなことができます。

CultureInfo ci = new CultureInfo("en-us", true);
ci.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
ci.DateTimeFormat.LongTimePattern = "HH:mm:ss";
ci.DateTimeFormat.AMDesignator = "";
ci.DateTimeFormat.PMDesignator = "";

現在のスレッド カルチャを次のように設定できます。

Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

そして、次のように日付を表​​示します。

Console.WriteLine(dt.ToString("G"));

または、次のように、カルチャをパラメーターとして ToString メソッドに渡すことができます。

Console.WriteLine(dt.ToString("G", ci));

2 番目の方法を使用する場合は、上記のコードを静的メソッドでラップして、次のように呼び出すことができます。

Console.WriteLine(dt.ToString("G", Cultures.EnUs));
于 2012-05-20T22:20:33.990 に答える