从 24h NSString return null 创建 NSDate
Create NSDate from 24h NSString return null
我有 NSString
这样的 24 小时格式:
NSString *a = @"10:00";
NSString *b = @"23:59";
如何用 NSString
b 得到 NSDate
?
我使用:
+ setDateFormat: @"HH:mm"
==> 当 phone 设置为 24 小时时,它对 a 和 b 都有效。
+ setDateFormat: @"hh:mm"
==> 它仅适用于 phone 设置为 am/pm.
的情况
我的完整代码 self.timeInit 是 24 小时格式的 NSString:
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];
}
您在 NSDateFormatter 上强制使用自己的语言环境,因此它会忽略用户的设置。
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *date = [dateFormat dateFromString:self.timeInit];
我有 NSString
这样的 24 小时格式:
NSString *a = @"10:00";
NSString *b = @"23:59";
如何用 NSString
b 得到 NSDate
?
我使用:
+ setDateFormat: @"HH:mm"
==> 当 phone 设置为 24 小时时,它对 a 和 b 都有效。
+ setDateFormat: @"hh:mm"
==> 它仅适用于 phone 设置为 am/pm.
我的完整代码 self.timeInit 是 24 小时格式的 NSString:
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];
}
您在 NSDateFormatter 上强制使用自己的语言环境,因此它会忽略用户的设置。
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
[dateFormat setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *date = [dateFormat dateFromString:self.timeInit];