0

私はこれを持っています:

DateTime date = new DateTime();

そして私はそれを印刷します。結果は次のとおりです。

ローカルホスト:

date: 1/1/0001 12:00:00 AM

サーバー上:

date: 1-1-0001 0:00:00

正しい方法はローカルホストでの方法です。これを修正する方法と、なぜこれが起こっているのですか?同じコードです。

4

3 に答える 3

5

マシンごとに地域設定が異なるため。日時を同じ形式で出力するには、形式文字列を明示的に指定する必要があります。

date.ToString("yyyy-MM-dd HH:mm:ss");

また、ジョンが以下のコメントで推奨しているように、ローカルの地域設定に関係なく、異なるマシンで同じ形式で日時を出力したい場合は、InvariantCulture形式プロバイダーを使用できます。

date.ToString(CultureInfo.InvariantCulture);

MSDN

不変の文化は文化に影響されません。英語に関連付けられていますが、国/地域には関連付けられていません

MSDN:

于 2013-02-01T09:51:04.170 に答える
0

形式が常に同じである限り、形式についてあまり気にしない場合は、不変のカルチャを使用して日付を表示できます。

date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);
于 2013-02-01T09:54:13.183 に答える
0

日付を表示したとおりに表示するには、次を使用できます。

date.ToString("M/d/yyyy hh:mm:ss tt");

または、フォーマット文字列を使用する場合:

string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);
于 2013-02-01T09:55:13.297 に答える