如何在 c# 中处理日期时间的空值
本文关键字:日期 时间 空值 处理 | 更新日期: 2023-09-27 18:34:29
如何检查"开始"是空白还是空:
Employee.CurrentLongTermIncentive.StartDate
我尝试了以下方法:
Employee.CurrentLongTermIncentive.StartDate!=null // Start is empty it's falied.
Employee.CurrentLongTermIncentive.StartDate.HasValue // Start is empty it's falied.
如何检查开始日期的空值或空白值并分配给字符串值。开始日期具有日期时间格式。
不能将类型为 DateTime
的对象设置为 null。 这就是您的代码可能失败的原因。
您可以尝试使用 DateTime.MinValue
来标识尚未分配值的实例。
Employee.CurrentLongTermIncentive.StartDate != DateTime.MinValue;
但是,您可以使用以下声明将DateTime
配置为可为空。
DateTime? mydate = null;
if (mydate == null) Console.WriteLine("Is Null");
if (mydate.HasValue) Console.WriteLine("Not Null");
注意:?
- 这允许将不可为空的值分配为空。
您似乎正在使用DateTime?
作为开始时间,因此请尝试以下操作
if (!Employee.CurrentLongTermIncentive.StartDate.HasValue) {
Employee.CurrentLongTermIncentive.StartDate = (DateTime?) DateTime.Parse(myDateString);
}
其中myDateString
是一个字符串,表示要分配的日期。
我想你可能想要if Employee.CurrentLongTermIncentive.StartDate != DateTime.MinValue
如果您尝试在文本框中显示它,只需执行以下操作,只需确保 Employee 和 CurrentLongTermIncentive 都不为空:
txtStartDate.Text = GetStartDate(Employee.CurrentLongTermIncentive.StartDate);
private string GetStartDate(DateTime? startDate)
{
if (startDate != null)
{
return startDate.Value.ToShortDateString();
}
return "";
}