我在数据集列中重新审核了日期值" 9/14/2016 12:00:00 AM" 现在我正在编写以下代码,以便在文本框中显示它
var date = ds.Tables[0].Rows[0]["ExpiryDate"].ToString();
txtExpiryDate.Text = date.ToString();
它在文本框中显示为" 91/42/0161" 我希望它应该以mm / dd / yyyy格式显示日期,即09/14/2016或2016年9月14日。 我无法解决这个问题......请帮忙!!!
答案 0 :(得分:3)
如果它实际上已经是DateTime
,则无需将其转换为字符串,然后返回DateTime
。 DataRowExtensions.Field
在这里派上用场了:
DateTime date = ds.Tables[0].Rows[0].Field<DateTime>("ExpiryDate");
该方法还支持可空类型。因此,如果该列可以为null:
DateTime? dateOrNull = ds.Tables[0].Rows[0].Field<DateTime?>("ExpiryDate");
if(dateOrNull.HasValue) Console.Write(dateOrNull.Value.ToShortDateString());
要获得所需的格式,您可以使用:
string result = date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:1)
使用它
var date = ds.Tables[0].Rows[0]["ExpiryDate"].ToString("MM/dd/yyyy");
txtExpiryDate.Text = date;
答案 2 :(得分:1)
试
txtExpiryDate.Text = Convert.ToDateTime(ds.Tables[0].Rows[0]["ExpiryDate"]).ToString("MM/dd/yyyy");
或者
txtExpiryDate.Text = Convert.ToDateTime(ds.Tables[0].Rows[0]["ExpiryDate"]).ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);
答案 3 :(得分:0)
有很多方法可以做到这一点,在你的情况下,你正在分配没有正确格式的字符串。用我的代码替换你的代码,你会看到它正常工作。
txtExpiryDate.Text = String.Format("{0:MM/dd/yyyy}", Convert.Convert.ToDateTime(ds.Tables[0].Rows[0]["ExpiryDate"]));
答案 4 :(得分:0)
首先,这里给出的任何答案都适合你。这是导致问题的其他因素。
您应该在c#代码中调试值,甚至在客户端脚本中调试此问题。
正如我上面评论的那样:
仅取一部分日期值&#34; 9/14/2016 1&#34;,如果我们将/的位置移动到右侧的一个位置,则可以创建显示的值。它将变为91/42/0161(文本框中显示的错误值)。客户端脚本上是否有某些内容正在改变页面上的值。
您应该进行调试以完成工作。