Строка ввода '20100908041312'
формат: год, месяц, день, часы, минуты, секунды, часовой пояс
, и я пытался преобразовать его в NSDateс этим: @"yyyyMMddHHmmsszz"
Но NSDate равен нулю, кто-нибудь видит, что я делаю неправильно?
-(NSDate*)convertPDFDateStringAsDate:(NSString*) _string{
//20100908041312
//year month day Hours minutes seconds and time zone
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMddHHmmsszz"];
NSDate *date = [dateFormat dateFromString:_string];
//date is nil...
[dateFormat release];
return date;
}
РЕДАКТИРОВАТЬ: его часовой пояс нарушает его
РЕДАКТИРОВАТЬ2: @"yyyyMMddHHmmssTZD"
прекращает возвращать ноль, но не выбирает часовой пояс правильно
РЕДАКТИРОВАТЬ3: Это был код, который я использовал в конце ... я обнаружил, что формат меняется с PDF на PDF, поэтому код работаетс найденными мною вариациями, в некоторых случаях не правильно извлекает часовой пояс.
-(NSDate*)convertPDFDateStringAsDate:(NSString*) _string{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSString * formatCheck = [_string substringToIndex:2];
if(![formatCheck isEqualToString:@"D:"])
{
NSLog(@"ERROR: Date String wasnt in expected format");
return nil;//return [NSDate date];
}
NSString * extract = [_string substringFromIndex:2];
//NSLog(@"DATESTRING:'%@'",extract);NSLog(@"DATELENGTH:%i",[extract length]);
if([extract length]>14)
{
[dateFormat setDateFormat:@"yyyyMMddHHmmssTZD"];
}
else
{
[dateFormat setDateFormat:@"yyyyMMddHHmmss"];
}
NSDate * date = [dateFormat dateFromString:extract];
[dateFormat release];
return date ;
}