en-GB
この短い日付を米国形式で返したいのですが、アプリケーションの現在のカルチャは ですが、 でお願いしen-US
ます。
これまでのコードは次のとおりです。
DateTime.Now.AddYears(-2).ToShortDateString();
en-GB
この短い日付を米国形式で返したいのですが、アプリケーションの現在のカルチャは ですが、 でお願いしen-US
ます。
これまでのコードは次のとおりです。
DateTime.Now.AddYears(-2).ToShortDateString();
これを行うには、正しいカルチャ形式の文字列を使用していることを確認する必要があります。
この形式をカルチャから直接取得する 1 つの方法は次のとおりです。
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern
私にとってこれは戻りますM/d/yyyy
。
var usShortDatePattern =
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern;
DateTime.Now.AddYears(-2).ToString(usShortDatePattern);
これを行う利点は、ユーザーがen-US
コントロール パネル (地域と言語) で短い日付パターンを上書きした場合に、必要な書式設定が得られることです。
ドキュメントから取得:
DateTime.Now.AddYears(-2).ToString("d", new CultureInfo("en-US"));
var culture = new CultureInfo("en-us");
string formatedDate = DateTime
.Now
.AddYears(-2)
.ToString(culture.DateTimeFormat.ShortDatePattern, culture);
.ToString()
拡張メソッドを使用して、次の形式を入力します。
DateTime.Now.AddYears(-2).ToString("M/d/yyyy");
カスタムの日付形式オプションについては、次のドキュメントを参照してください。
「en-US short-date-pattern を適用したい」:
DateTime.Now.AddYears(-2).ToString("d", CultureInfo.GetCultureInfo("en-US"));
「.NET が en-US の短いパターンであると考えるかどうかに関係なく、パターン M/d/yyyy を適用したい:
DateTime.Now.AddYears(-2).ToString(@"M\/d\/yyyy", CultureInfo.InvariantCulture)
(上記と同じ結果ですが、「米国の形式」と考えているものが、実際には米国でも使用されている MM/dd/yyyy である場合は、それが望ましいアプローチですが、@"MM\/dd\/yyyy"
代わりに@"M\/d\/yyyy"
.
最後に、「別の呼び出しで使用する en-US short-date-pattern を見つけたい:
CultureInfo.GetCultureInfo("en-US").DateTimeFormat.ShortDatePattern