【发布时间】:2011-05-17 05:55:17
【问题描述】:
输入字符串是'20100908041312'
格式为年、月、日、时、分、秒、时区
我一直在尝试将其转换为 NSDate:@"yyyyMMddHHmmsszz"
但是 NSDate 是 nil,有人知道我做错了什么吗?
-(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;
}
编辑:它打破它的时区
EDIT2:@"yyyyMMddHHmmssTZD" 停止它返回 nil,但不正确选择时区
EDIT3:这是我最后使用的代码...我发现格式从 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 ;
}
【问题讨论】:
-
天啊!我做了所有这些研究都白费了! :)
标签: iphone objective-c ipad ios nsdate