我有这个字符串......
2010-08-24T16:00:00-05:00
我想从中提取时间部分(即16:00)并将其转换为12小时的等效时间(即04:00 pm)。我正在尝试使用NSDateFormatter来实现这一目标,但它无法正常工作......
NSDateFormatter* dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"hh:mm a"];
NSDate *date1 = [dateformatter dateFromString:[listOfTimes objectAtIndex:0]];
[dateformatter release];
我可以将NSDateFormatter与此日期格式一起使用吗?如果没有,我如何提取时间并将其转换为12小时的等效时间?
谢谢!
答案 0 :(得分:2)
问题与解析冒号有关。我问了同样的问题,解决方案在这里:How to parse a date string into an NSDate object in iOS?
答案 1 :(得分:1)
我认为您应该可以执行以下操作。
// create the date formatter object
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate* date = [formatter dateFromString:dateString];
// set up the new date format
[formatter setDateFormat:@"hh:mm:ss"];
NSString *twelveHourTime = [formatter stringFromDate:date];
[formatter release];
更新:修复了dateFormatter字符串格式。我有下面的一行,但Z似乎没必要。时区总是搞砸我。 : - /
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
答案 2 :(得分:0)
这个答案需要更新。从iOS 10开始,提供的系统NSISO8601DateFormatter可用于此特定格式。