将包含am和pm的字符串到NSDate所遇到的问题

将NSString转换为NSDate,但是用下面的代码实现后, 只有用户的设备时间在12小时制时才有效,24小时制的时候转换后的结果为nil 。

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];

NSString *aTime = @"2018-11-14 2:00:00 AM";
NSDate *aDate = [formatter dateFromString:aTime];

解决方法:

指定formatter 的locale

formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]

这样你无论在12小时制 或者 24小时制下都能得到相同的结果。

你可能感兴趣的:(将包含am和pm的字符串到NSDate所遇到的问题)