如何将“20110912T220000”(NSString) 给出的日期转换为 NSDate

发布于 2024-12-06 12:34:34 字数 126 浏览 5 评论 0原文

我正在获取“20110912T220000”格式的日历事件的开始和结束日期(在解析 .ics 文件时)。如何将其转换为 NSDate 以添加为事件(EKEvent)的 startDate 属性。

如果有人知道请尽快帮助我。

I am getting start and end dates for my calendar event(while parsing a .ics file) in "20110912T220000" format. How can I convert this to a NSDate to add to add as event(EKEvent)'s startDate property.

If anyone knows please help me soon.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ぇ气 2024-12-13 12:34:34

为此,您应该使用NSDateFormatter

请参阅数据格式化指南 日期和时间编程指南也可能很有趣)

此技术说明请注意,对于这种情况,您应该使用特殊的“en_US_POSIX”区域设置,如本技术说明中所述。

NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[df setDateFormat:@"yyyyMMdd'T'HHmmss"];
NSDate* parsedDate = [df dateFromString:...];

You should use NSDateFormatter for this.

See Data Formatting Guide (the Date & Time Programming Guide may also be interesting)

This is also detailed in this Technical Note in Apple's Q&As. Note that for such situations, you should use the special "en_US_POSIX" locale as explained in this technical note.

NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[df setDateFormat:@"yyyyMMdd'T'HHmmss"];
NSDate* parsedDate = [df dateFromString:...];
不交电费瞎发啥光 2024-12-13 12:34:34
NSString *dateString = @"20110912T220000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];  
formatter.locale = locale;
formatter.dateFormat = @"yyyyMMdd'T'HHmmss";
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"date: %@", date);

NSLog() 输出:date: 2011-09-13 02:00:00 +0000

注意,NSLog 输出您本地时区的数据。

请注意日期格式中“T”周围的单引号。

以下是 UTS 的链接:日期/时间格式字符

NSString *dateString = @"20110912T220000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];  
formatter.locale = locale;
formatter.dateFormat = @"yyyyMMdd'T'HHmmss";
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"date: %@", date);

NSLog() output: date: 2011-09-13 02:00:00 +0000

Note, NSLog outputs the data in you local timezone.

Note the single quotes around the 'T' in the date format.

Here is a link to UTS: date/time format characters

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文