C# 设置日和月格式,但不设置其顺序
我知道日期时间格式。“dd”代表从01到31的日期,“MM”-从01到12的月份。我需要这个格式。但是如果我写“dd MM”(在我的ToString()方法中),它总是将日期放在月份之前。如何在不更改当前区域设置的顺序(第一天或第一个月)的情况下设置此格式(dd和MM)?因此,如果当前的文化日先到,我希望收到“20 08 2012”(分隔符在这里不重要),如果月份先到-“08 20 2012”请查看文化日。也许你可以根据自己的需要定制,例如C# 设置日和月格式,但不设置其顺序,c#,datetime,C#,Datetime,我知道日期时间格式。“dd”代表从01到31的日期,“MM”-从01到12的月份。我需要这个格式。但是如果我写“dd MM”(在我的ToString()方法中),它总是将日期放在月份之前。如何在不更改当前区域设置的顺序(第一天或第一个月)的情况下设置此格式(dd和MM)?因此,如果当前的文化日先到,我希望收到“20 08 2012”(分隔符在这里不重要),如果月份先到-“08 20 2012”请查看文化日。也许你可以根据自己的需要定制,例如 string FormatWithMonthDayPa
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"
您可以使用当前区域设置中的获取两个项目的相对顺序,然后构造dd MM
或MM dd
:
var mdp = CultureInfo.CurrentCulture.DateTimeFormat.MonthDayPattern;
string pattern = mdp.IndexOf('M') < mdp.IndexOf('d') ? "MM dd" : "dd MM";
var mdp=CultureInfo.CurrentCulture.DateTimeFormat.MonthDayPattern;
字符串模式=mdp.IndexOf('M')
myDate.ToString(“MM dd”)
-月份将出现在日期之前。除非你是说别的?@ShadowWizard不是“不改变当前区域设置的顺序(第一天或第一个月是什么)”部分不清楚吗?我添加了一个例子。Pethaps use?很抱歉,仍然不清楚您在这里想要实现什么。@我需要将日期和月份设置为两位数,但我不想设置什么是第一天或第一个月,因为A不能接受两个答案,所以我可以投票给您,谢谢!