0

这可能很简单。我已经搜索过了,还没有找到。

如何将 NSString @"20100216190205" 转换为格式为 @"yyyy-MM-dd HH:mm:ss" 的 NSString。

即:@“2010-02-16 19:02:05”

编辑: 我想避免在其他情况下使用 NSDateFormatter 更通用。

4

3 回答 3

2

您可以提取每个子字符串,将它们转换为整数 ( -intValue),然后用于NSDateComponents将它们转换为日期。而且比使用 NSDateFormatter 麻烦多了。

在您的情况下,NSDateFormatter 的格式需要yyyyMMddHHmmss在调用之前设置为-dateFromString:,即

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....
于 2010-02-16T16:06:08.827 回答
1

您需要将formatter' 格式设置为 yyyyMMddHHmmss 以解析示例中的字符串。您需要创建一个新的格式化程序或修改原始格式化程序的格式以合并您想要的更具视觉吸引力的格式 ( @"yyyy-MM-dd HH:mm:ss")。

于 2010-02-16T16:06:44.303 回答
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);

但我同意:对自己放轻松,为此使用日期格式化程序。

于 2010-02-16T16:20:40.397 回答