【问题标题】:How to concatenate a datetime into a textbox in c# asp.net to show just date如何将日期时间连接到 c# asp.net 中的文本框中以仅显示日期
【发布时间】:2014-04-25 10:01:54
【问题描述】:

如何将一个可为空的日期时间连接到 c# asp.net 中的文本框中以仅显示日期? 当我将日期加载到文本框中时,我在文本框中得到以下信息:

2014-04-26 00:00:00.000

但我只想知道日期有什么想法吗?无法让 tostring 显示我想要的内容。 我正在调用如下值:

 txtDateExpected.Text = loadVisitDetails.expectedDate.ToString();

【问题讨论】:

  • 你看起来有多努力?我搜索了c# date tostring 并得到了这个:msdn.microsoft.com/en-us/library/zdtaw1bw%28v=vs.110%29.aspx
  • 它与我使用可为空的日期时间不同
  • @wubblyjuggly 就像yourNullable.Value.Date.ToString()一样简单
  • @wubblyjuggly 您还应该在问题中提及类似的内容。

标签: c# asp.net sql datetime


【解决方案1】:

您只能使用Date 类的Date 属性获取日期部分:

 txtDateExpected.Text = loadVisitDetails.expectedDate != null ? loadVisitDetails.expectedDate.Date.ToString() : "";

或:

if(loadVisitDetails.expectedDate != null)
   txtDateExpected.Text = loadVisitDetails.expectedDate.Date.ToString();

查看Here DateTime.Date MSDN docs

【讨论】:

  • 在 cmets 中添加了 expectedDate 可以为空的 OP。您也可以添加该支票吗?
  • ToString() 可能会产生不同格式的结果,如果您没有指定文化或明确的格式
  • 你的建议,andrew..你也可以分享以进行更正
  • 你为什么要传递“d”请解释一下
【解决方案2】:

使用string.Format 形成您想要的表示:

DateTime? dt = loadVisitDetails.expectedDate;
txtDateExpected.Text = (dt == null) ?
                        String.Empty :
                        String.Format("{0:yyyy-MM-dd}", dt);

【讨论】:

  • 这意味着您必须使用特定格式。 OP 只需要日期部分。
  • 另外,使用dt.ToString()而不是string.Format肯定更易读?
  • 这只是个人喜好问题;)
  • @Yahya,你不认为格式很重要吗?你总是确定ToString() 结果吗? PS。 Thread.CultureThread.UICulture 很棘手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 2011-08-29
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多