Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置日和月格式,但不设置其顺序_C#_Datetime - Fatal编程技术网

C# 设置日和月格式,但不设置其顺序

C# 设置日和月格式,但不设置其顺序,c#,datetime,C#,Datetime,我知道日期时间格式。“dd”代表从01到31的日期,“MM”-从01到12的月份。我需要这个格式。但是如果我写“dd MM”(在我的ToString()方法中),它总是将日期放在月份之前。如何在不更改当前区域设置的顺序(第一天或第一个月)的情况下设置此格式(dd和MM)?因此,如果当前的文化日先到,我希望收到“20 08 2012”(分隔符在这里不重要),如果月份先到-“08 20 2012”请查看文化日。也许你可以根据自己的需要定制,例如 string FormatWithMonthDayPa

我知道日期时间格式。“dd”代表从01到31的日期,“MM”-从01到12的月份。我需要这个格式。但是如果我写“dd MM”(在我的ToString()方法中),它总是将日期放在月份之前。如何在不更改当前区域设置的顺序(第一天或第一个月)的情况下设置此格式(dd和MM)?因此,如果当前的文化日先到,我希望收到“20 08 2012”(分隔符在这里不重要),如果月份先到-“08 20 2012”

请查看文化日。也许你可以根据自己的需要定制,例如

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不能接受两个答案,所以我可以投票给您,谢谢!