在 Xamarin C# 中显示 Google 日历 API v3 事件日期时间

Displaying Google Calendar API v3 Events dateTime in Xamarin C#

我正在尝试从 Google 日历中获取事件并将它们显示在 Xamarin.Forms 的列表视图中。

Google 当您调用 start.dateTime 时,日历使用 RFC3339 格式,格式为 yyyy-mm-dd。 我正在尝试使用类似于 .Net DateTime.ToLongDateString 方法的字符串星期几格式(2018 年 1 月 1 日星期一)。

到目前为止我的代码是这样的:

namespace TheFirstAcademy.ViewModels{
class EventListViewModel
{
    public List<SchoolEvent> SchoolEvents { get; set; }
    public SchoolCalendar SelectedCalendar { get; set; }


    public EventListViewModel(SchoolCalendar selectedcalendar)
    {
        SelectedCalendar = selectedcalendar;
        SchoolEvents = GetSchoolEvents();

    }

    public List<SchoolEvent> GetSchoolEvents()
    {
        // Create Google Calendar API service.
        var service = new CalendarService(new BaseClientService.Initializer()
        {
            ApiKey = "Key",
            ApplicationName = "TFA Calendar Mobile App",
        });

        // Define parameters of request.
        EventsResource.ListRequest request = service.Events.List(SelectedCalendar.SchoolCalId);
        request.TimeMin = DateTime.Now;
        request.ShowDeleted = false;
        request.SingleEvents = true;
        request.MaxResults = 10;
        request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;

        // List events.
        Events events = request.Execute();
        List<SchoolEvent> schoolEvents = new List<SchoolEvent>();

        if (events.Items != null && events.Items.Count > 0)
        {
            foreach (var eventItem in events.Items)
            {
                string when = eventItem.Start.DateTime.ToString();
                if (String.IsNullOrEmpty(when))
                {
                    when = eventItem.Start.Date;
                }

                schoolEvents.Add(new SchoolEvent() {
                    EventTitle = eventItem.Summary,
                    EventDescription = eventItem.Description,
                    EventStartTime = when,
                    EventEndTime = eventItem.End.Date
                });
            }
        }
        return schoolEvents;
    }
}

}

这最终将显示在 iOS 和 Android 的 ListView 中,使用 Xamarin.Forms。日历的事件看起来像这样:

[活动名称]

[活动地点]

开始时间:2018 年 5 月 25 日星期五 12:00 下午

结束:2018 年 5 月 26 日星期六 12:00 下午

我找到了一些参考资料: Google 日历 v3 活动信息 https://developers.google.com/calendar/v3/reference/events

RFC to dateTime(不确定这是否是正确的方向)。 How do I parse and convert a DateTime to the RFC 3339 date-time format?

感谢任何帮助。

我通过使用找出了转换。 DateTime.Parse()

我使用 DateTime.Parse() 将 eventItem.Start.Date(它是一个字符串)转换为 DateTime。然后我将 DateTime 转换为字符串 ("ddd MMM dd, yyyy").

可能是基本的东西也许这会对某人有所帮助。