在我的应用程序中,客户端的要求是以12小时格式显示时间。如果我的设备不是24时格格式,一切正常。但是如果我将设备时间格式更改为24小时格式,则mydate即将到来。这是我的代码。
NSString *timeStr=@"12-02-2012 11:12 PM";
NSDateFormatter *dtf = [[NSDateFormatter alloc] init];
[dtf setDateFormat:@"dd-MM-yyyy hh:mm a"];
NSDate *myDate=[dtf dateFromString:timeStr];
请给出一个解决方案。我正在通过mydate验证datePicker的日期,我的应用程序由于零值而崩溃。提前谢谢。
答案 0 :(得分:2)
我通过为格式化程序设置Locale来获得我的解决方案,如果设备是24小时格式,我将获得NSDate。这是代码。
NSString *timeStr=@"12-02-2012 11:12 PM";
NSDateFormatter *dtf = [[NSDateFormatter alloc] init];
[dtf setDateFormat:@"dd-MM-yyyy hh:mm a"];
[dtf setFormatterBehavior:NSDateFormatterBehaviorDefault];
NSDate *datens= [[NSDate alloc]init];
NSLocale *curentLocale = [NSLocale currentLocale];
[dtf setLocale:[[NSLocale alloc] initWithLocaleIdentifier:[curentLocale localeIdentifier]]];