私はこれを持っています:
DateTime date = new DateTime();
そして私はそれを印刷します。結果は次のとおりです。
ローカルホスト:
date: 1/1/0001 12:00:00 AM
サーバー上:
date: 1-1-0001 0:00:00
正しい方法はローカルホストでの方法です。これを修正する方法と、なぜこれが起こっているのですか?同じコードです。
マシンごとに地域設定が異なるため。日時を同じ形式で出力するには、形式文字列を明示的に指定する必要があります。
date.ToString("yyyy-MM-dd HH:mm:ss");
また、ジョンが以下のコメントで推奨しているように、ローカルの地域設定に関係なく、異なるマシンで同じ形式で日時を出力したい場合は、InvariantCulture形式プロバイダーを使用できます。
date.ToString(CultureInfo.InvariantCulture);
MSDN:
不変の文化は文化に影響されません。英語に関連付けられていますが、国/地域には関連付けられていません
MSDN:
形式が常に同じである限り、形式についてあまり気にしない場合は、不変のカルチャを使用して日付を表示できます。
date.ToString(System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat);
日付を表示したとおりに表示するには、次を使用できます。
date.ToString("M/d/yyyy hh:mm:ss tt");
または、フォーマット文字列を使用する場合:
string.Format("date: {0:M/d/yyyy hh:mm:ss tt}", date);