将日期时间显示为" 00000000"当值为null时

时间:2015-02-03 08:09:40

标签: c# datetime

我正在编写一个小型控制台应用程序并且正在从数据库中检索数据,并且需要将日期时间数据显示为" 00000000"当保存在数据库中的值为空时。

我试过这个

string temp = v.CompetentDate != null ? v.CompetentDate : "00000000";
DateTime competentdate = DateTime.Parse(temp);
v.CompetentDate = competentdate.ToString("ddMMyyyy");

但获得String was not recognised as a valid DateTime

的例外情况

如何才能获得价值' 00000000'如果数据库中的值为null。

4 个答案:

答案 0 :(得分:3)

为什么要将字符串转换为日期时间然后再转换为字符串?只需设置字符串值

v.CompetentDate = v.CompetentDate ?? "00000000";

答案 1 :(得分:2)

您可以像这样使用DateTime.TryParse Method

DateTime temp;
v.CompetentDate = DateTime.TryParse(competentdate,out temp)?
                  temp.ToString("ddMMyyyy"):
                  "00000000";

答案 2 :(得分:1)

DateTime.MinValue.ToString("ddMMyyyy")返回01010001而不是00000000。这就是为什么在尝试DateTime.Parse("00000000");时会出现异常的原因。

相反,你可能想要这个(即使我会使用01010001代替00000000):

v.CompetentDate = v.CompetentDate != null 
    ? DateTime.Parse(v.CompetentDate).ToString("ddMMyyyy") 
    : "00000000";

顺便说一句,为什么不让DateTime使用CompetentDate

答案 3 :(得分:0)

试试吧

string temp = v.CompetentDate != null ? v.CompetentDate : "00000000";
 DateTime competentdate = DateTime.Parse(temp);
v.CompetentDate = competentdate.ToString("dd,mm,yyyy");