根据用户的偏好,我试图将给定的小时变为上午/下午或24小时显示。
我目前有:
+ (NSString *)formatWithTemplate:(NSString *)template {
return [NSDateFormatter dateFormatFromTemplate:template options:0 locale:[NSLocale currentLocale]];
}
+ (NSString *)format:(NSDate *)date {
[formatter setDateFormat:[MyFormatter formatWithTemplate:@"h a"]];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
return [formatter stringFromDate:date];
}
使用示例:
如果使用24小时时钟, [MyFormatter format:24]
将显示“24:00”,如果使用12小时时钟(在用户的设备设置中),则显示“12:00 PM”。
但是,对于12小时时钟,它会一直显示:“12:00 PM”。有没有办法摆脱:00,同时尊重区域设置和用户的设置,以便显示:“12 PM”而不是“12:00 PM”?
当我使用时:
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
它尊重用户的设置,但完全忽略了我的格式。但是,如果我使用我的格式,它会忽略用户的设置。
有什么想法吗?
答案 0 :(得分:0)
我会以用户设置为准。那么你已经有了一个从中获取字符串的方法。然后根据需要修改字符串。
由于您确信您只需要查找并替换字符串&#39:00'那就做那个。这是非常简单的事情:
NSString *string = @"12:00 PM"; //get this from the `dateFormatter` `format:date` method you have
NSString *newString = [string stringByReplacingOccurrencesOfString:@":00" withString:@""];
NSLog(@"newString %@",newString);