NSString到NSDate转换的特定格式化程序

时间:2014-06-10 00:42:30

标签: ios objective-c nsdate nsdateformatter

我已经坚持了一段时间,虽然我确实认为我的代码处于正常工作状态,但由于无法正确设置NSDateFormatter,我无法将以下字符串转换为日期。

2014-06-09T23:24:00.0000000

以下是一些示例代码:

NSString *dateString = @"2014-06-09T23:24:00.0000000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];

NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
NSLog(@"date: %@", date);

在此示例中,日志将变为空。

1 个答案:

答案 0 :(得分:3)

由于您的日期有一个小数部分,您需要将其添加到日期格式化程序中,否则您不会给它预期的内容。将.SSS添加到格式字符串的末尾,因此您的代码将如下所示,并返回您期望的日期:

NSString *dateString = @"2014-06-09T23:24:00.0000000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];

NSDate* date = [dateFormatter dateFromString:dateString];
NSLog(@"date: %@", date);

打印:2014-06-10 06:24:00 +0000