0

en-GBこの短い日付を米国形式で返したいのですが、アプリケーションの現在のカルチャは ですが、 でお願いしen-USます。

これまでのコードは次のとおりです。

DateTime.Now.AddYears(-2).ToShortDateString();
4

5 に答える 5

4

これを行うには、正しいカルチャ形式の文字列を使用していることを確認する必要があります。

この形式をカルチャから直接取得する 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コントロール パネル (地域と言語) で短い日付パターンを上書きした場合に、必要な書式設定が得られることです。

于 2012-08-17T09:24:07.457 に答える
2

ドキュメントから取得:

DateTime.Now.AddYears(-2).ToString("d", new CultureInfo("en-US"));
于 2012-08-17T09:21:40.027 に答える
1
var culture = new CultureInfo("en-us");
string formatedDate = DateTime
    .Now
    .AddYears(-2)
    .ToString(culture.DateTimeFormat.ShortDatePattern, culture);
于 2012-08-17T09:23:36.620 に答える
1

.ToString()拡張メソッドを使用して、次の形式を入力します。

DateTime.Now.AddYears(-2).ToString("M/d/yyyy");

カスタムの日付形式オプションについては、次のドキュメントを参照してください。

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

于 2012-08-17T09:21:02.793 に答える
1

「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
于 2012-08-17T09:35:35.017 に答える