C#-Convert.ToDateTime(),其中日期中未指定年份
我想将日期列表转换为如下所示:C#-Convert.ToDateTime(),其中日期中未指定年份,c#,datetime,datetime-conversion,C#,Datetime,Datetime Conversion,我想将日期列表转换为如下所示: 六月六日 九月十八日 十一月二日 二月二十九日 日期本身没有指定年份,因此当我尝试使用Convert.ToDateTime()解析日期时,假定当前年份(2021)。如何将这些日期指定为不同的年份?假设我想指定这些日期中的每一个都是从2020年开始的。我如何在转换中指定它?这是我使用CultureInfo的地方吗?您可以解析(ParseExact)提供的文本;唯一可能的问题是闰年和2月29日: 结果: string[] tests = new string[
- 六月六日
- 九月十八日
- 十一月二日
- 二月二十九日
Convert.ToDateTime()
解析日期时,假定当前年份(2021
)。如何将这些日期指定为不同的年份?假设我想指定这些日期中的每一个都是从2020年开始的。我如何在转换中指定它?这是我使用CultureInfo
的地方吗?您可以解析(ParseExact
)提供的文本;唯一可能的问题是闰年和2月29日:
结果:
string[] tests = new string[] {
"June 6",
"September 18",
"November 2",
"February 29"
};
string report = string.Join(Environment.NewLine, tests
.Select(test => $"{test,-15} => {MyConvert(test, 2000):dd.MM.yyyy}"));
Console.Write(report);
June 6 => 06.06.2000
September 18 => 18.09.2000
November 2 => 02.11.2000
February 29 => 29.02.2000
一行就可以做到:
string textDate=“9月18日”;
int desiredYear=2008年;
DateTime日期=Convert.ToDateTime(desiredYear.ToString()+textDate);
只需更改年份即可
var input = "June 6";
var converted = DateTime.ParseExact("mmmm d");
var date = new DateTime(DateTime.Today.Year, converted.Month, converted.Day);
新日期时间(年、月、日);以这种方式解析事物时要非常小心;在我的系统上,DateTime.Parse(“6月6日”)
毫无错误地给出了完全错误的2006-06-01结果DateTime.Parse(“6月6日”,new CultureInfo(“en-US”))
做了正确的事情,但即使这样,我也不确定自己是否会更愿意用一个固定的月名列表进行解析。DateTime.ParseExact(date+“2020”,“MMMM d yyyy”,System.Globalization.CultureInfo.InvariantCulture)
?
var input = "June 6";
var converted = DateTime.ParseExact("mmmm d");
var date = new DateTime(DateTime.Today.Year, converted.Month, converted.Day);