2016-04-30 72 views
-1

我有一個GCalendar類與Google Calendar API互動:在TimeSpan中轉換DateTime?

public class GEvent 
{ 
    public DateTime StartDate { get; set; } 
    public TimeSpan StartTime { get; set; } 
    public DateTime EndDate { get; set; } 
    public TimeSpan EndTime { get; set; } 
} 

如何可以看到有兩個屬性StartTimeEndTimeTimeSpan

現在我已經創建了一個實例化這個類,像這樣的對象:

Calendar.GEvent eventD = new Calendar.GEvent(); 

我拿StartTimeEndTime的值從一個自定義的控制。然而,此控件返回DateTime而不是TimeSpan,所以我需要將DateTime轉換爲TimeSpan。這是我做的:

eventD.StartTime = new TimeSpan((long)EventTimeStart.SelectedTime.Value); 

其中EventTimeStart是自定義控件。現在有一個問題new TimeSpan等了很久,所以我試圖隱式轉換的控制值到(long)但我得到:

不能類型System.DateTime轉換成「龍」

我也嘗試與:

long startTime = EventTimeStart.SelectedTime.Value; 

但是是同樣的事情。我該如何解決這個問題?

enter image description here

+0

'yourDateTime.TimeOfDay'。由於TimeSpan是DateTime的一部分,因此無法將DateTime轉換爲Timespan。它就像試圖將汽車變成車輪。 – C4u

+0

@ C4ud3x我在EventTimeStart上沒有'TimeOfDay'' – Dillinger

+0

然後,'EventTimeStart'不是DateTime !? – C4u

回答

1

這就是:

TimeSpan startTime = EventTimeStart.SelectedTime.Value.TimeOfDay;

由於時間跨度爲datetime的一部分,你不能轉換。但你可以用.TimeOfDay來撿起它。

根據評論中的錯誤:不要試圖存儲TimeSpanlong
long time = something.TimeOfDay;不會工作。