将DateTime绑定到单独的日期和时间字段的最佳方法?

时间:2011-10-05 07:34:38

标签: c# asp.net-mvc asp.net-mvc-3

我使用具有DateTime值的模型类。我想将这个属性显示为两个框,一个用于日期,另一个用于时间。

最好的方法是什么?有什么建议吗?

提前致谢!

4 个答案:

答案 0 :(得分:2)

查看Hanselman撰写的Splitting DateTime博客文章。

答案 1 :(得分:0)

将日期时间格式化为2个不同的属性。

首先将日期时间格式检索为“yyyy / MM / dd” 第二种格式为“HH:mm:ss”

答案 2 :(得分:0)

您需要做的就是使用两种格式表达式,一种用于提取时间,另一种用于提取日期。

将此绑定到日期框:

txtDateBox.Text =  date.ToString("dd MMM yyyy");

将此绑定到时间框:

txtTimeBox.Text = date..ToString("HH:mm:ss");

(预设您的变量称为日期)。

答案 3 :(得分:0)

你可以做这样的事情(我没有运行代码,这只是一个想法):

private DateTime MyModelDateTime;
public string date
{
 get
 {
   return MyModelDateTime.ToString("MM/dd/yyyy"); 
 }
 set
 {
   string pattern = "MM/dd/yyyy HH:mm:ss";
   string timeValue = MyModelDateTime.ToString("HH:mm:ss");
   string dateTimeValue = value + " " +timeValue;
   MyModelDateTime = DateTime.ParseExact(dateTimeValue, pattern, null, DateTimeStyles.None)
 }
}

public string time
{
 get
 {
   return MyModelDateTime.ToString("HH:mm:ss"); 
 }
 set
 {
   string pattern = "MM/dd/yyyy HH:mm:ss";
   string dateValue = MyModelDateTime.ToString("MM/dd/yyyy");
   string dataTimeValue = dateValue + " " + value;
   MyModelDateTime = DateTime.ParseExact(dateTimeValue, pattern, null, DateTimeStyles.None)
 }
}