gpt4 book ai didi

iphone - 如何将日期字符串解析为 iOS 中的 NSDate 对象?

转载 作者:IT老高 更新时间:2023-10-28 11:36:23 25 4
gpt4 key购买 nike

我正在尝试将 xml 中的日期字符串解析为 iPhone 应用程序中的 NSDate 对象

我知道之前一定有人问过这个问题,但是,我相信我的语法是正确的,但它不起作用。我的代码有问题吗?

我需要解析的日期字符串是:

2011-01-21T12:26:47-05:00

我用来解析它的代码是:

self.dateFormatter = [[NSDateFormatter alloc] init];
[self.dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
[self.dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[self.dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];



...

else if([elementName isEqualToString:kUpdated]){
self.currentQuestion.updated = [self.dateFormatter dateFromString:self.currentParsedCharacterData ];
}

非常感谢任何帮助。谢谢!

**基于来自 theChrisKent 的链接引用,我修复了如下问题:

else if([elementName isEqualToString:kLastOnDeck]){

NSString *dateStr = self.currentParsedCharacterData;
// we need to strip out the single colon
dateStr = [dateStr stringByReplacingOccurrencesOfString:@":"
withString:@""
options:0
range:NSMakeRange([dateStr length] - 5,5)];




self.currentQuestion.lastOnDeck = [dateFormatter dateFromString:dateStr];

}

最佳答案

您不需要尽可能多的单引号(仅在非日期/时间字符上需要),因此请更改:

[self.dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];

到这里:

[self.dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
...
self.currentQuestion.updated = [self.dateFormatter dateFromString:[self.currentParsedCharacterData stringByReplacingOccurrencesOfString:@":" withString:@"" options:0 range:NSMakeRange([self.currentParsedCharacterData length] – 5,5)]];

此处的文档:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

Unicode 格式模式:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns

用冒号处理时区 (+00:00):http://petersteinberger.com/2010/05/nsdateformatter-and-0000-parsing/

关于iphone - 如何将日期字符串解析为 iOS 中的 NSDate 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com