将 NSString 转换为具有日期格式的 NSString 块
-
20-09-2019 - |
题
这可能很简单。我已经搜索过了,还没找到。
如何将 NSString @"20100216190205" 转换为格式 @"yyyy-MM-dd HH:mm:ss" 的 NSString。
IE:@“2010-02-16 19:02:05”
编辑:对于其他情况,我想避免使用 NSDateFormatter 来使其更加通用。
解决方案
纯粹作为书面代码的锻炼:
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);
但我同意:去容易对自己,并使用日期格式为这个
其他提示
您可以提取每个子字符串,将它们转换为整数(-intValue
),然后使用 NSDateComponents
将它们转换为日期。而且比使用NSDateFormatter麻烦很多。
在您的情况下, NSDateFormatter 的格式需要设置为 yyyyMMddHHmmss
打电话之前 -dateFromString:
, , IE。
[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....
您需要将您的formatter
的格式设置为YYYYMMDDHHMMSS解析你在你的例子有串。你需要创建一个新的格式或修改原始格式的格式,以纳入更多的视觉吸引力一个你想要的(@"yyyy-MM-dd HH:mm:ss"
)。
不隶属于 StackOverflow