如何获得没有分隔符的格式化小时字符串?

时间:2015-06-26 10:52:22

标签: ios objective-c nsdate nsdateformatter

我需要来自NSDate的NSString,我只需要小时,分钟和秒。 如果是1:40:30 PM我需要字符串为“134030”

NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init];
[userTimeFormatter setDateFormat:@"HHmmss"];

这不起作用。如果我使用格式hhmmss它似乎工作但它不是24小时格式。 有什么建议? 可能与locale有关吗?

3 个答案:

答案 0 :(得分:1)

此行为的原因是Locale,设置正确的Locale,将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]);

答案 1 :(得分:0)

试过这个

NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init];
[userTimeFormatter setDateFormat:@"HHmmss"];

NSLog(@"%@",[userTimeFormatter stringFromDate:[NSDate date]]);

它工作正常。

答案 2 :(得分:0)

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];