转换DateTime?在dd-MM-yyyy中输入字符串

时间:2017-05-31 15:36:08

标签: c# .net linq date datetime

我以完整的dateTime格式从db获取值,但需要将其转换为上述格式的字符串。我使用了dateTime.ParseExact,但似乎无法使用可空类型..请帮助

4 个答案:

答案 0 :(得分:13)

使用可为空的DateTime对象的Value属性:

dt.HasValue ? dt.Value.ToString("dd-MM-yyyy") : string.Empty; 

将'string.Empty'替换为您想要做的任何事情,如果它为null。

答案 1 :(得分:2)

听起来你只需要使用可空字段的value属性:

Datetime? readValue;
readValue.Value.ToString("dd-MM-yyyy");

如果要从字符串转换,则只需要使用ParseExact。

答案 2 :(得分:1)

Visual Studio 2015及更高版本中的

Null-conditional Operator

DateTime? d = null;

string s = d?.ToString("dd-MM-yyyy");   // s = null 

或字符串插值和string.Format

string s1 = $"{d:dd-MM-yyyy}";                  // s1 = ""

string s2 = string.Format("{0:dd-MM-yyyy}", d); // s2 = ""

答案 3 :(得分:0)

您可以使用Parse方法将字符串转换为DateTime

        Nullable<DateTime> d;
        d = DateTime.Parse("1996-07-12 00:00:00.000");
        if (d.HasValue)
        {
            Console.WriteLine(d.Value.ToString("dd-MM-yyyy"));
        }