我有24小时格式的NSString
:
NSString *a = @"10:00";
NSString *b = @"23:59";
如何使用NSDate
b获得NSString
?
我使用:
+ setDateFormat: @"HH:mm"
==>当手机设置为24小时时,它对a和b都有效。
+ setDateFormat: @"hh:mm"
==>它只用于手机设置是上午/下午。
我的完整代码,self.timeInit是NSString,格式为24h:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
NSDate *date = [dateFormat dateFromString:self.timeInit];
if (!date){
[dateFormat setDateFormat:@"hh:mm"];
date = [dateFormat dateFromString:self.timeInit];
NSLog(@"Date 2: %@", date);
}
if (!date){
[dateFormat setDateFormat:@"H:mm"];
date = [dateFormat dateFromString:self.timeInit];
NSLog(@"Date 3: %@", date);
}
NSLog(@"Date: %@", date);
if (date){
[self.timePickerUI setDate:date];
}
答案 0 :(得分:2)
您在NSDateFormatter上强制使用自己的区域设置,因此它会忽略用户的设置。
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *date = [dateFormat dateFromString:self.timeInit];