我想将dd-MM-yyyy日期格式解析为dd MMM yyyy我得到了引用,但是它不能以正确的方式转换日期,所以它与日期和月份不匹配。
假设我的约会日期是
string dat = "11-01-2019"
我正在使用
string date = DateTime.Parse(dat).ToString("dd MMM yyyy");
,但返回 2019年11月1日 。但是实际上,它是 2019年1月11日 ,因为日期的格式是dd-MM-yyyy我不知道如何更正它使用的任何解析方法返回2019年11月1日,这是错误的。请帮助我解决问题
答案 0 :(得分:2)
您需要指定日期格式所针对的区域性。我在这里假设英国:
var ukCulture = System.Globalization.CultureInfo.GetCultureInfo("en-gb");
string dat = "11-01-2019";
string date = DateTime.Parse(dat, ukCulture).ToString("dd MMM yyyy");
Console.WriteLine(date);
请注意,如果您在此处输入无效的日期,则会得到FormatException
,因此最好使用TryParse
:
var ukCulture = System.Globalization.CultureInfo.GetCultureInfo("en-gb");
string dat = "11-01-2019";
DateTime parsedDate;
if (DateTime.TryParse(dat, ukCulture, System.Globalization.DateTimeStyles.None, out parsedDate))
{
string date = parsedDate.ToString("dd MMM yyyy");
Console.WriteLine(date);
}
else
{
Console.WriteLine("invalid date");
}
答案 1 :(得分:0)
除了为John提供了一个很好的答案外,以下是CultureInfo代码列表供您参考: http://www.csharp-examples.net/culture-names/