我有一个mm/dd格式的字符串。例如">04/13";需要转换为DateTime。
当我们使用Convert.ToDateTime("04/13"(时,它给出输出
4/13/2022上午12:00:00,年份为当前年份,即2022
与当前年份2022不同,需要在输出中获得自定义年份,如">1900"或配置的年份
我想要的输出是4/13/190012:00:00。有人能帮我处理这个吗
您可以为此创建一个方法:
public static DateTime GetDate(string text, int year, int hour = 0, int min = 0, int sec = 0)
{
var str = $"{year}/{text} {hour:D2}:{min:D2}:{sec:D2}";
return DateTime.ParseExact(
str, "yyyy/MM/dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
}
并使用它:
var date = GetDate("04/13", 1900, 12);
Console.WriteLine(date);
漂亮简单的
var year = "1900";
var date = DateTime.ParseExact($"04/13/{year}", "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);
我确实注意到您已经在输出中指定了"12:00:00"作为您想要的时间,但没有提及更多信息,所以我没有包括它,但它与我上面所做的非常相似,只是您会增加时间。
要获得您想要的输出,您可以执行以下操作:
Convert.ToDateTime("4/13").AddYears(- desiredYearsToSubtract);
然后只需将所需的年份添加到您的配置中即可。