有没有更简单的方法将DateTime?转换为DateTime.Date.ToString()



有没有比从 DateTime 转换更简单的方法? -> 字符串 -> 日期时间 -> 字符串?

DateTime? timeReceived;
String dateReceived = timeReceived == null ? "" : DateTime.Parse(timeReceived.ToString()).Date.ToString();

您可以使用 null 安全运算符 ?。例如timeReceived?.Date.ToString().?.如果参数null则使表达式短路并返回null

要将null替换为空字符串,您可以使用空合并运算符??,例如somethingNullable ?? ""。把所有的东西放在一起:

String dateReceived = timeReceived?.Date.ToString() ?? "";

您还可以使用?[]访问可为 null 的数组的元素,并??=仅在变量包含null时才设置变量。这两个运算符可以简化代码,但很容易忘记它们。我一直在重新发现这些

您可以将?运算符与??(null合并运算符)一起使用。 如果与之一起使用的变量为 null,则运算符?返回 null(与缺少此运算符相反,这将引发 null 引用异常)。我认为您应该使用string.Empty来重用预定义的空字符串并明确说明您想要的内容。这是完整示例

string dateStr = timeReceived?.Date.ToString() ?? string.Empty;

您可能还想使用方便的方法ToShortDateString

string dateStr = timeReceived?.Date.ToShortDateString() ?? string.Empty;

相关内容

最新更新