4

現在設定されているカルチャに応じて、日付を M/dd または dd/M で表示する必要があります。私たちのアプリでは、構成に基づいてカルチャを明示的に設定します。現在、次の方法を使用して日付をフォーマットしています。

string dateStringFormat =Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern;

someDate.ToString(dateStringFormat)

これにより、設定されたカルチャ (IE 10/4/2013 または 4.10.2013) に合わせて書式設定された目的の日付文字列が生成されます。しかし、日付に年を含めないようにする必要がある場合、どうすればそれを行うことができ、それでも変数にすることができますか? 私が何かをした場合someDate.ToString("dd/MM", dateStringFormat)、文化に関係なく、常に日/月の形式に保たれませんか? うまくいけば、私の質問は十分に明確です。助けてくれてありがとう。

4

5 に答える 5

3

Month フォーマット指定子を使用してみてください。たとえば、これは次のとおりです。

var d = new DateTime(2013, 10, 04);
var str = d.ToString("M");
Console.WriteLine(d);

en-USカルチャで次を出力します。

10 月 4 日

pr-BRカルチャでは次のようになります。

4 de outubro

日付の月と日の部分のみを数値として表示するための定義された規則はおそらくないため、これが最善の方法です。

于 2013-10-04T16:27:46.817 に答える
2

文化で定義された日/月の特定の順序がないため、あなたが探していることは不可能だと思います(同じ文化で異なる​​形式の両方の順序が可能な場合があると思います)。

あなたは実際にShortDatePatternそれから年の部分を取って取り除くか、日/月の順序を使用して独自のものを構築することができます.

アプリケーションを再設計して、完全な形式で表示するか、月名 + 日を表示するか、または日か月かを明示的に指定するその他の方法を使用する方がはるかに安全です。04/10/13 :)

于 2013-10-04T16:17:41.597 に答える
0

ちょっとばかげていますRemoveが、結果の文字列で使用しないのはなぜですか?

var dateString = someDate.ToString(dateStringFormat);
var dateStringWithoutYear = dateString.Remove(dateString.Length - 5);
于 2013-10-04T16:14:49.300 に答える