Как я могу получить отформатированную строку часа без разделителей?
Мне нужна строка NSState от NSDate, мне нужны только часы, минуты и секунды. Если это 1:40:30 вечера, мне нужно, чтобы строка была 134030
NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init];
[userTimeFormatter setDateFormat:@"HHmmss"];
Это не работает Если я использую формат hhmmss, он, кажется, работает, но не в 24-часовом формате. Какие-либо предложения? Может быть, что-то делать с локалью?
3 ответа
Причиной такого поведения является локаль, установите правильную локаль, установите для локального элемента NSDateFormatter значение en_US_POSIX, чтобы исправить это. Он работает как для 24-часового, так и для 12-часового формата.
NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init];
[userTimeFormatter setDateFormat:@"HHmmss"];
NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[userTimeFormatter setLocale:en_US_POSIX];
NSLog(@"time:%@",[userTimeFormatter stringFromDate:userTime]);
Пробовал это
NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init];
[userTimeFormatter setDateFormat:@"HHmmss"];
NSLog(@"%@",[userTimeFormatter stringFromDate:[NSDate date]]);
и работает нормально.
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init];
[dtFormatter setDateFormat:@"hh:mm:ss a"];
NSDate *date=[dtFormatter dateFromString:"1:40:30 PM"];
[dtFormatter setDateFormat:@"HHmmss"];
NSString *dateString=[dtFormatter stringFromDate:date];