Objective c 将目标c中的NSString转换为NSDate

Objective c 将目标c中的NSString转换为NSDate,objective-c,nsstring,nsdate,Objective C,Nsstring,Nsdate,我得到了一个名为@“2018年1月27日00:00”的NSString。我只想将此字符串转换为NSDate类。请建议一些实现此目的的方法。提前感谢 试试这个 NSString *dateString = @"27-Jan-2018 00:00"; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier

我得到了一个名为@“2018年1月27日00:00”的NSString。我只想将此字符串转换为NSDate类。请建议一些实现此目的的方法。提前感谢

试试这个

NSString *dateString = @"27-Jan-2018 00:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"%@",dateFromString);

请检查下面的代码。也许这对你和你的需要都有用

 -(void)DateChange

 {

  NSString *Input_Date =@"31-Jan-18 04:25 AM";

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"dd-MMM-yy hh:mm a"];

  NSDate * Format_date = [dateFormatter dateFromString:Input_Date];
 [dateFormatter setDateFormat:@"dd-MMM-yy hh:mm a"];
  NSString *Change_date = [dateFormatter stringFromDate:Format_date];
  NSLog(@"Final Change Date :-  %@",Change_date);

 }



My Output is :- 
Final Change Date :- 31-Jan-18 04:25 AM

看这个。。假设字符串始终使用英文月份名称,您还需要将日期格式化程序的区域设置为
en_US\u POSIX
@rmaddy编辑答案并将区域设置添加到
en_US\u POSIX