📅  最后修改于: 2023-12-03 14:59:43.676000             🧑  作者: Mango
在编写 C# 代码时,有时需要将日期字符串转换为可为空的日期时间类型(即:DateTime?)。这种情况通常是因为日期字符串可能为空,或者无法正确解析成日期时间类型。在本文中,我们将介绍如何在 C# 中执行这种类型的转换。
string dateStr = "2022-09-20";
DateTime? date = DateTime.TryParse(dateStr, out DateTime result) ? result : (DateTime?)null;
Console.WriteLine(date.HasValue ? date.Value.ToString() : "日期格式错误");
上述代码中,我们使用 DateTime.TryParse()
方法将日期字符串转换为 DateTime
类型。如果转换成功,则将转换结果赋值给 date
变量;否则将 null
赋值给该变量。
注意,这里使用了三元运算符来判断转换结果是否为空。如果结果不为空,则使用 date.Value
取得该值,并将其转换为字符串输出;否则输出错误信息。
首先,我们在代码中定义了一个字符串变量 dateStr
,它存储了待转换的日期字符串。
接着,我们使用 DateTime.TryParse()
方法将 dateStr
中的日期字符串转换为 DateTime
类型。该方法的定义如下:
public static bool TryParse(string s, out DateTime result);
其中,s
参数表示待转换的日期字符串,result
参数表示转换后的日期时间对象。该方法返回一个布尔值,指示转换是否成功。
如果转换成功,则使用三元运算符将 result
赋值给日期时间类型变量 date
;否则将 null
赋值给该变量。由于 null
不能直接赋值给非空值类型变量,所以将其强制转换为可空值类型 DateTime?
。
最后,我们使用 date.HasValue
方法判断 date
是否为空。如果不为空,则将转换后的日期时间对象输出;否则输出错误信息。
在 C# 中,我们可以使用 DateTime.TryParse()
方法将字符串类型的日期转换为可空日期时间类型。该方法返回一个布尔值,指示转换是否成功。如果成功,则可以将转换后的日期时间对象赋值给可空日期时间类型变量;否则将其赋值为 null
。在使用此种类型的变量时,需要先判断其是否为空,以防止空引用异常的发生。