缺少c#中的前导零/日期问题

时间:2011-05-04 21:33:03

标签: c# asp.net datetime

我有一个页面,我在其中创建和更新事件,此事件可以有eventDate输入日历:

     

创建活动时,一切都很棒。当我更新事件时,我使用DB中的日期预先填充此字段:

txtEventDate.Text = Reader.GetDateTime(7).Date.ToShortDateString();

现在,它表现得很好:

  

05/05/2011

用于创建活动的相同代码现在在UPDATING上失败了:

cmd.Parameters.Add("?eventDate", MySqlDbType.DateTime).Value = DateTime.ParseExact(txtEventDate.Text + " " + txtEventTime.Text,
                    "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);

因为它'看到'(用Debug检查)txtEventDate.Text有值:

  

2011/5/5

所以0缺失了......

这真的太丑了......因为在用户界面他们就在那里......你知道会出现什么问题吗?

更新:我已附上照片以证明问题... enter image description here

Ps:当我不编辑活动时(所以我不预先填充此字段,但选择从日历中选择一些日期)一切正常...

1 个答案:

答案 0 :(得分:1)

首先,对于格式的日期部分,您应指定"mm/dd/yyyy"(使用非大写字母“M”字母)以在解析时忽略前导零,但我担心的是您在图像中发布的错误不包括时间,您使用了包含时间格式的DateTime.ParseExact()函数。