ios – 在向日历Xcode添加事件时处理世界时(使用T)

ios – 在向日历Xcode添加事件时处理世界时(使用T),第1张

概述我试图在任何地方找到答案,包括StackOverflow ..我在从字符串添加时间事件时遇到问题,如下所示:2014-12-31T19:00:00-06:00.我顺便从 XML解析这个.其余的代码,包括标签等工作正常. 所以这是我的代码,用于向日历添加新事件(我试图添加’dateFromString’作为名称,当前时间检查并通过): EKEventStore *store = [[EKEventS 我试图在任何地方找到答案,包括StackOverflow ..我在从字符串添加时间事件时遇到问题,如下所示:2014-12-31T19:00:00-06:00.我顺便从 XML解析这个.其余的代码,包括标签等工作正常.

所以这是我的代码,用于向日历添加新事件(我试图添加’dateFromString’作为名称,当前时间检查并通过):

EKEventStore *store = [[EKEventStore alloc] init];[store requestAccesstoEntityType:EKEntityTypeEvent completion:^(BOol granted,NSError *error) {    if (!granted) { return; }    EKEvent *event = [EKEvent eventWithEventStore:store];    event.Title = tempnameOfEvent;    event.startDate = dateFromString; //here is a NSDate but incorrectly formatted    event.endDate = [event.startDate dateByAddingTimeInterval:60*60];  //set 1 hour meeting    [event setCalendar:[store defaultCalendarForNewEvents]];    NSError *err = nil;    [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];}];

代码来自Programmatically add custom event in the iPhone Calendar

那么,我应该如何格式化NSDate以使用EKEventStore?我是否应该尝试将其添加为“yyyy-MMM-dd HH:mm:ss ZZZ”,看起来像“2007-01-09 17:00:00 0000”?如何用“-06:00”解析字符串并消除部分? (来自XML的给定时间如下所示:2014-12-31T19:00:00-06:00).

解决方法 你有一个错误的月份格式,应该是’MM’,缺少’T’的引用,并在’xxx’之前添加一个不需要的空格.

使用:yyyy-MM-dd’T’HH:mm:ssxxx

见:ICU Formatting Dates and Times
另外:Date Field SymbolTable.

例:

Nsstring *ds = @"2014-12-31T19:00:00-06:00";NSDateFormatter *df = [NSDateFormatter new];[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssxxx"];NSDate *d = [df dateFromString:ds];NSLog(@"d: %@",d);

输出:

d: 2015-01-01 01:00:00 +0000

输出表单只是NSDate提供的默认显示,如果您希望特定格式使用NSDateFormatter来创建要显示的字符串.

请注意,显示的日期是UTC,因此它是在下一年提供的日期. 总结

以上是内存溢出为你收集整理的ios – 在向日历Xcode添加事件时处理世界时(使用T)全部内容,希望文章能够帮你解决ios – 在向日历Xcode添加事件时处理世界时(使用T)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1024681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存