无法从格式为 dd-MM-yyyy HH:mm:ss:ms 的字符串中获取日期时间

Can not get DateTime from String in format dd-MM-yyyy HH:mm:ss:ms

我成功地从 String 格式 dd-MM-yyyy HH:mm 中获取 NSDate 但是,当我尝试 String 格式 dd-MM-yyyy HH:mm:ss:ms 时,它不起作用

这是我的代码

    NSString *time1 = @"28-04-2016 09:59";
    NSDateFormatter * formatter1 = [[NSDateFormatter alloc] init];
    [formatter1 setDateFormat:@"dd-MM-yyyy HH:mm"];
    NSDate *dateTime1 = [formatter1 dateFromString:time1];

    NSLog(@"time1 = %@",time1);
    NSLog(@"dateTime1 = %@",dateTime1);



    NSString *time2 = @"28-04-2016 09:59:23:5923";
    NSDateFormatter * formatter2 = [[NSDateFormatter alloc] init];
    [formatter2 setDateFormat:@"dd-MM-yyyy HH:mm:ss:ms"];
    NSDate *dateTime2 = [formatter2 dateFromString:time2];
    NSLog(@"time2 = %@",time2);
    NSLog(@"dateTime2 = %@",dateTime2);

这是日志

2016-04-28 10:24:31.393 EarCrush[2370:43278] time1 = 28-04-2016 09:59
2016-04-28 10:24:31.394 EarCrush[2370:43278] dateTime1 = 2016-04-28 02:59:00 +0000
2016-04-28 10:24:31.394 EarCrush[2370:43278] time2 = 28-04-2016 09:59:23:5923
2016-04-28 10:24:31.395 EarCrush[2370:43278] dateTime2 = (null)

更新 如果我使用格式 @"dd-MM-yyyy HH:mm:ss:SSSS" 我会得到结果:

2016-04-28 10:50:56.281 EarCrush[3237:56438] dateTime2 = 2016-04-28 02:59:23 +0000

日期时间 2 不是 null,但缺少毫秒

如有任何帮助,我们将不胜感激。

根据this列表小数秒是大写S

[formatter2 setDateFormat:@"dd-MM-yyyy HH:mm:ss:SSSS"];

考虑 NSLog 不显示小数秒。
为此,您需要使用日期格式化程序将日期转换回字符串。