gpt4 book ai didi

c# - 在 C# 中将 DateTime 日期和字符串时间组合成一个 DateTime

转载 作者:行者123 更新时间:2023-11-30 20:32:40 26 4
gpt4 key购买 nike

我使用的是 asp.net MVC,我的表单中有两个单独的字段。

一个接受日期,另一个接受时间。在我的 ViewModel 中,我有以下两个属性:

public DateTime Date { get; set; }
public string Time { get; set; } //could potentially make this of type DateTime

我想创建一个名为 DateTime 的 ReadOnly 属性,它将组合的日期和时间作为 DateTime 返回。

如果我可以只创建类型为 TimeSpan 的 Time 属性,这将非常简单,但不幸的是,在使用我正在使用的 TimePicker 时,MVC 不会将时间绑定(bind)为时间跨度。它只接受字符串或日期时间。

有什么想法可以做到这一点吗?

我尝试过一些无效的方法:

public DateTime Date { get; set; }
public string Time { get; set; }
public DateTime DateTime => Date.Date.Add(TimeSpan.Parse(Time)); // Time = "2:00 AM"

唯一有效但我不确定的是以下内容:

public DateTime Date { get; set; }
public DateTime Time { get; set; }
public DateTime DateTime => Date.Add(Time.TimeOfDay);

最佳答案

您可以将时间解析为 TimeSpan 对象并将其添加到当前日期。

08:00 AM 格式的解析时间可以用 h:mm tt 解决,如 here 所述.

public DateTime Date { get; set; }
public string Time { get; set; }
public DateTime DateTime
{
get
{
return Date.Date.Add(DateTime.ParseExact(Time, "h:mm tt", CultureInfo.InvariantCulture).TimeOfDay);
}
}

更新:

如果 Time 类型为 DateTime

public DateTime Date { get; set; }
public DateTime Time { get; set; }
public DateTime DateTime
{
get
{
return Date.Date.Add(Time.TimeOfDay);
}
}

关于c# - 在 C# 中将 DateTime 日期和字符串时间组合成一个 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41096052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com