2

我创建了一个日历事件,选择了全天 (10/24/2013) 。然后我试图拉出 e.EventStart 和 e.EventEnd。我的预期结果是 EventStart =10/24/2013 12.00.00 am 和

活动结束 = 2013 年 10 月 25 日上午 12 点。但是得到的是 EventStart = 10/24/2013 12.00.00 am 和 EventEnd= 10/24/2013 12.00.00 am。

当我尝试使用 e.EventStartUtc 和 e.EventEndUtc 时,同样可以正常工作。但我不想要 utc 格式,因为我试图为用户提取 ektron 时间。

4

1 回答 1

4

如果您使用框架 API,则WebEventData该类有一个名为IsAllDay. 您可以使用它来触发显示更改。例如,如果是全天活动,您可能根本不想显示开始/结束时间,而只显示日期。

如果您确实需要为全天事件设置特定的开始/结束时间,您可以WebEventData使用扩展方法轻松扩展 Ektron 对象。

public static class WebEventExtensions
{
    public static DateTime GetDisplayStartDate(this WebEventData webEvent)
    {
        if (!webEvent.IsAllDay)
            return webEvent.EventStart;

        return new DateTime(webEvent.EventStart.Year, webEvent.EventStart.Month, webEvent.EventStart.Day);
    }

    public static DateTime GetDisplayEndDate(this WebEventData webEvent)
    {
        if (!webEvent.IsAllDay)
            return webEvent.EventEnd;

        return new DateTime(webEvent.EventEnd.Year, webEvent.EventEnd.Month, webEvent.EventEnd.Day, 23, 59, 59);
    }
}

然后这些方法将出现在对象上。

var eventManager = new WebEventManager();
WebEventData webEvent = eventManager.GetItem(730);
if (webEvent.IsAllDay)
{
    // do all-day stuff...
}

var start = webEvent.GetDisplayStartDate();
var end = webEvent.GetDisplayEndDate();
于 2013-10-24T12:41:21.993 回答