从字符串创建NSDate

sam*_*mir 27 format objective-c nsdate ios

我有NSString这样的:@"3/15/2012 9:15 PM"我想把它转换成NSDate,我这样做了:

NSString *str =@"3/15/2012 9:15 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"mm/dd/yyyy HH:mm"];
NSDate *date = [formatter dateFromString:];

NSLog(@"%@", date);  // date = null
Run Code Online (Sandbox Code Playgroud)

谢谢你能帮我吗

Ila*_*ian 59

使用以下解决方案

NSString *str = @"3/15/2012 9:15 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"MM/dd/yyyy HH:mm a";

NSDate *date = [formatter dateFromString:str];

NSLog(@"%@", date);
Run Code Online (Sandbox Code Playgroud)

编辑: 对不起,格式应如下:

formatter.dateFormat = @"MM/dd/yyyy hh:mm a";
Run Code Online (Sandbox Code Playgroud)

显示的时间将是GMT时间.因此,如果您添加/减去时区,它将是晚上9:15.

编辑:#2

使用方法如下.你也会得到准确的时间.

NSString *str = @"3/15/2012 9:15 PM";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"MM/dd/yyyy hh:mm a";

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];

formatter.timeZone = gmt;

NSDate *date = [formatter dateFromString:str];

NSLog(@"%@",date);
Run Code Online (Sandbox Code Playgroud)