这可能很简单。我搜索过,还没找到。
如何将NSString @“20100216190205”转换为格式为@“yyyy-MM-dd HH:mm:ss”的NSString。
即:@“2010-02-16 19:02:05”
修改 对于其他情况,我想避免使用NSDateFormatter更通用。
答案 0 :(得分:2)
您可以提取每个子字符串,将它们转换为整数(-intValue
),然后使用NSDateComponents
将这些子字符串转换为日期。它比使用NSDateFormatter麻烦得多。
在您的情况下,在调用yyyyMMddHHmmss
之前,需要将NSDateFormatter的格式设置为-dateFromString:
,即
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....
答案 1 :(得分:1)
您需要将formatter
的格式设置为yyyyMMddHHmmss来解析示例中的字符串。您需要创建一个新的格式化程序或修改原始格式化程序的格式,以合并您想要的更具视觉吸引力的格式化程序(@"yyyy-MM-dd HH:mm:ss"
)。
答案 2 :(得分:1)
纯粹作为编写代码的练习:
NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);
但我同意:对自己轻松一点,并为此使用日期格式化程序。