2009-09-17 51 views
2

这就是我迄今为止所做的。在C#中合并两个DateTime类型

/// <summary> 
/// Gets the date. 
/// </summary> 
/// <param name="date">The date: 05/07/2009</param> 
/// <returns></returns> 
private static DateTime GetDate(string date) 
{ 
    DateTime postDate = DateTime.Parse(date); 
    postDate.AddHours(DateTime.UtcNow.Hour); 
    postDate.AddMinutes(DateTime.UtcNow.Minute); 
    postDate.AddSeconds(DateTime.UtcNow.Second); 
    postDate.AddMilliseconds(DateTime.UtcNow.Millisecond); 

    return postDate; 
} 

有没有更好的方法来合并两个日期?我正在寻找更优雅的解决方案。

回答

3
return DateTime.Parse(date) + DateTime.UtcNow.TimeOfDay; 
+0

这是正确的答案。 – 2009-09-17 08:33:34

7

你可以试试这个

/// <summary> 
/// Gets the date. 
/// </summary> 
/// <param name="date">The date: 05/07/2009</param> 
/// <returns></returns> 
private static DateTime GetDate(string date) 
{ 
    DateTime postDate = DateTime.Parse(date);   
    return postDate.Add(DateTime.UtcNow.TimeOfDay);   
} 

MSDN链接:DateTime.Add

编辑:代码更改

+1

这个答案是不正确。 DateTime是一个不可变的结构体; Add方法不会修改DateTime,而是返回一个新的! – Joren 2009-09-17 08:16:46

+0

@Joren:你说得对,谢谢你纠正我。 :) – 2009-09-17 08:31:04

+0

这是不正确的。我已经证实了它。 – 2009-09-17 08:32:23

1

我不知道怎么加2个日期让任何意义。你能举一个例子,说明昨天+现在=某件事情吗?添加时间跨度将有意义:昨天+ 1天=今天。

你能解释一下你想要的吗?你解析的日期实际上是一个TimeSpan?然后,你应该做的:

回报DateTime.UtcNow.Add(TimeSpan.parse(timespanstring))