2009-09-17 55 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))