日時形式について知っています。「dd」は01から31までの日、「MM」は01から12までの月を表します。この形式が必要です。しかし、「dd MM」(私の場合はToString()メソッド)と書くと、常に月の前日になります。現在のロケールから順序(最初に来るもの-日または月)を変更せずに、この形式(ddおよびMM)を設定するにはどうすればよいですか?したがって、現在の文化の日が最初である場合は「20 08 2012」(ここでは区切り文字は関係ありません)を受け取り、月が最初である場合は「08202012」を受け取ります。
2 に答える
5
MonthDayPattern
現在のロケールからを使用して2つのアイテムの相対的な順序を取得し、dd MM
またはMM dd
次のいずれかを作成できます。
var mdp = CultureInfo.CurrentCulture.DateTimeFormat.MonthDayPattern;
string pattern = mdp.IndexOf('M') < mdp.IndexOf('d') ? "MM dd" : "dd MM";
于 2012-08-20T14:01:40.967 に答える
3
文化のMonthDayPatternをご覧ください。たぶんあなたはそれをあなたのニーズに合わせてカスタマイズすることができます、例えば
string FormatWithMonthDayPattern(DateTime dateTime, CultureInfo cultureInfo)
{
var pattern = cultureInfo.DateTimeFormat.MonthDayPattern;
return dateTime.ToString(Regex.Replace(pattern, "M+", "MM"));
}
var result1 = FormatWithMonthDayPattern(DateTime.Now, new CultureInfo("en-US"));
// result1 == "08 20"
var result2 = FormatWithMonthDayPattern(DateTime.Now, new CultureInfo("fr-FR"));
// result2 == "20 08"
于 2012-08-20T14:01:13.690 に答える