[英]C# - Convert.ToDateTime() where Year is not specified in the Date
我想轉換如下表示的日期列表:
日期本身並沒有指定年份,因此當我嘗試使用Convert.ToDateTime()
解析它們時,假定為當前年份( 2021
)。 如何將這些日期指定為不同的年份? 假設我想指定這些日期中的每一個都是從2020
開始的。 如何在轉換中指定它? 這是我會使用CultureInfo
的地方嗎?
您可以解析( ParseExact
)提供的text
; 唯一可能的問題是閏年和2 月 29 日:
private static DateTime MyConvert(string text, int year = 0) {
return DateTime.ParseExact(
$"{(year <= 0 ? DateTime.Today.Year : year)} {text}",
"yyyy MMMM d",
CultureInfo.InvariantCulture);
}
演示:
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 = "September 18";
int desiredYear = 2008;
DateTime date = 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.