Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin C中显示Google日历API v3事件日期时间#_C#_Datetime_Xamarin_Google Calendar Api - Fatal编程技术网

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

C# 在Xamarin C中显示Google日历API v3事件日期时间#,c#,datetime,xamarin,google-calendar-api,C#,Datetime,Xamarin,Google Calendar Api,我正在尝试从Google日历中获取事件,并将它们显示在Xamarin.Forms的列表视图中 当您调用start.dateTime时,Google Calendar使用RFC3339格式。格式为yyyy-mm-dd。 我正在尝试使用类似于.Net DateTime.ToLongDateString方法的字符串星期日格式(2018年1月1日星期一) 到目前为止,我的代码是: namespace TheFirstAcademy.ViewModels{ class EventListViewModel

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

当您调用start.dateTime时,Google Calendar使用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;
    }
}
firstacademy.ViewModels的名称空间{
类EventListViewModel
{
公共列表学校事件{get;set;}
公立学校日历SelectedCalendar{get;set;}
公共事件列表视图模型(学校日历选择日历)
{
SelectedCalendar=SelectedCalendar;
SchoolEvents=GetSchoolEvents();
}
公共列表GetSchoolEvents()
{
//创建谷歌日历API服务。
var service=new CalendarService(new BaseClientService.Initializer()
{
ApiKey=“Key”,
ApplicationName=“TFA日历移动应用程序”,
});
//定义请求的参数。
EventsResource.ListRequest=service.Events.List(SelectedCalendar.SchoolCalId);
request.TimeMin=DateTime.Now;
request.showdeled=false;
request.SingleEvents=true;
request.MaxResults=10;
request.OrderBy=EventsResource.ListRequest.OrderByEnum.StartTime;
//列出事件。
Events=request.Execute();
列出学校事件=新建列表();
如果(events.Items!=null&&events.Items.Count>0)
{
foreach(events.Items中的var eventItem)
{
字符串when=eventItem.Start.DateTime.ToString();
if(String.IsNullOrEmpty(when))
{
当=eventItem.Start.Date时;
}
schoolEvents.Add(新SchoolEvent(){
EventTitle=eventItem.Summary,
EventDescription=eventItem.Description,
EventStartTime=when,
EventEndTime=eventItem.End.Date
});
}
}
返回学校活动;
}
}
}

这将最终使用Xamarin.Forms显示在iOS和Android的列表视图中。日历的事件如下所示:

[活动名称]

[活动地点]

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

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

我找到了一些参考资料: 谷歌日历v3事件信息

RFC到dateTime(不确定这是否是正确的方向)。


非常感谢您的帮助。

我通过使用解决了转换问题。DateTime.Parse()

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

可能是基本的东西,也许这会帮助别人