Windows Azure に 2 つの環境 (展開) があります。ある環境 (D env など) では、ステートメント
DateTime.Now.ToString("dd/mm/yyyy")
戻り値 "08-01-2013"
別の環境(E envなど)では、戻ります"08/01/2013"
なぜそうなったのか、私には理解できませんでした。
Windows Azure に 2 つの環境 (展開) があります。ある環境 (D env など) では、ステートメント
DateTime.Now.ToString("dd/mm/yyyy")
戻り値 "08-01-2013"
別の環境(E envなど)では、戻ります"08/01/2013"
なぜそうなったのか、私には理解できませんでした。
あなたの環境の追加設定は異なると思います。
あなたの D 環境は日付の追加設定を使用し-
、E 環境は環境 E で/
日付形式を変更するを使用します。dd.MM.yyyy
Windows 7 の場合は、次の手順に従います。Control Panel-->Language and Region-->Change the date, time and number format-->Additional Settings--> Date
コード部分を変更したい場合は、コードでCultureInfo.InvariantCulture
プロパティを使用できます。
インバリアント カルチャはカルチャに依存しません。英語に関連付けられていますが、国/地域には関連付けられていません。CultureInfo インスタンス化メソッドの呼び出しで空の文字列 ("") を使用して、インバリアント カルチャを名前で指定します。CultureInfo.InvariantCulture は、インバリアント カルチャのインスタンスも取得します。カルチャを必要とする System.Globalization 名前空間のほぼすべてのメソッドで使用できます。
CultureInfo
両方の環境でフランス語を使いたいとしましょう。
CultureInfo frFr = new CultureInfo("fr-FR");
string s = DateTime.Now.ToString("dd/mm/yyyy", frFr);
ToString
現在の の設定を使用するオーバーロードを使用していますCulture
。書式指定文字列のスラッシュ文字は、現在のカルチャの日付フィールド区切り文字の置換文字として扱われます。
明示的な日付形式文字列を使用する場合は、明示的な形式プロバイダーも使用してください。この場合、InvariantCulture
;の形式を使用することをお勧めします。例えば
using System.Globalization;
...
var x = DateTime.Now.ToString("dd/mm/yyyy", CultureInfo.InvariantCulture);
単一引用符で囲むことにより、明示的なスラッシュを使用するようにフォーマット文字列を変更することもできます。これにより、パーサーは文化的な置換文字を見つけようとしなくなります。
var x = DateTime.Now.ToString("dd'/'mm'/'yyyy");