我有一个与GCalendar
互动的Google Calendar API
班级:
public class GEvent
{
public DateTime StartDate { get; set; }
public TimeSpan StartTime { get; set; }
public DateTime EndDate { get; set; }
public TimeSpan EndTime { get; set; }
}
如何看待有两个属性StartTime
和EndTime
同时为TimeSpan
。
现在我已经创建了一个实例化这个类的对象,如下所示:
Calendar.GEvent eventD = new Calendar.GEvent();
我从自定义控件中获取StartTime
和EndTime
的值。但是,此控件会返回DateTime
而不是TimeSpan
,因此我需要将DateTime
转换为TimeSpan
。这就是我所做的:
eventD.StartTime = new TimeSpan((long)EventTimeStart.SelectedTime.Value);
其中EventTimeStart
是自定义控件。现在有一个问题new TimeSpan
等待很长时间,所以我试图将控制值隐式转换为(long)
但是我得到了:
无法将类型
System.DateTime
转换为' Long'
我也尝试过:
long startTime = EventTimeStart.SelectedTime.Value;
但是是一回事。我该怎么做才能解决这个问题?
答案 0 :(得分:2)
这是:
TimeSpan startTime = EventTimeStart.SelectedTime.Value.TimeOfDay;
由于TimeSpan是DateTime的一部分,您无法转换。但是你可以用.TimeOfDay
来获取它。
根据评论中的错误:请勿尝试将TimeSpan
存储在long
中。
long time = something.TimeOfDay;
无法工作。