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

3

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

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

提前感谢!


1
这些字段需要双向绑定还是只读显示? - Joey
4个回答

2

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)
 }
}

0

在两个不同的属性中格式化您的日期时间。

第一个属性检索日期时间格式为“yyyy/MM/dd”,第二个属性格式为“HH:mm:ss”。


1
最好使用date.ToShortTimeString()和date.ToShortDateString(),因为它们是根据当前文化格式化的。 - jgauffin

0
你所需要做的就是使用两个格式表达式,一个用于提取时间,另一个用于提取日期。
将其绑定到日期框中:
txtDateBox.Text =  date.ToString("dd MMM yyyy");

将此绑定到时间框:
txtTimeBox.Text = date..ToString("HH:mm:ss");

(假设您的变量名为date)。


最好使用 date.ToShortTimeString()date.ToShortDateString(),因为它们是根据当前区域设置格式化的。但问题是针对MVC,我敢打赌他想使用强类型的HtmlHelpers。 - jgauffin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接