转换字符串到日期的nslocale问题

时间:2013-11-21 12:08:12

标签: ios objective-c nsdate nsdateformatter

我是xcode的新手,请参阅下面的代码和链接 enter link description here

{
NSString * TempDate = [NSString stringWithFormat:@"%@ %@ %@",Datelbl.text,yearString,TimeLbl.text]; //Thursday, November 21 2013 5:35 PM

[dateFormatter setLocale:[NSLocale currentLocale]];
[dateFormatter setDateFormat :@"EEEE',' MMMM d yyyy hh:mm a"];
AppointmentDate = [dateFormatter dateFromString:TempDate];    //NSDate 
Appointment = [dateFormatter stringFromDate:AppointmentDate]; //NSString 
}

这里,appointmentDate返回此值 - > 2013-11-21 12:05:00 +0000, 约会返回此值 - > 2013年11月21日星期四下午05:35。

我需要2013-11-21 05.35 PM。那么,如何管理这个GMT问题。

2 个答案:

答案 0 :(得分:0)

试试这个:

NSString *date = @"Thursday, November 21 2013 3:05 PM";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat : @"EEEE, MMMM d yyyy hh:mm a"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSDate *AppointmentDate = [dateFormatter dateFromString:date];

NSLog(@"DATE--> %@",AppointmentDate);

输出:

  

DAT - > 2013-11-21 15:05:00 +0000

注意:NSDate将采用24小时格式。您需要将其转换为字符串,如03:05 ...

答案 1 :(得分:-1)

编辑:

  [dateFormatter setDateFormat : @"EEEE, MMMM d yyyy hh:mm a"];

String value not converting to date format