Как я могу получить отформатированную строку часа без разделителей?

Мне нужна строка 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];
Другие вопросы по тегам