以下代码适用于24小时时间格式。
+ (NSString *)formatDate:(NSDate *)date useLongStyle:(BOOL)useLongStyle showDate:(BOOL)showDate showTime:(BOOL)showTime
{
NSDateFormatter *dateFormatter = [NSDateFormatter new];
dateFormatter.dateStyle = (useLongStyle) ? NSDateFormatterLongStyle : NSDateFormatterShortStyle;
dateFormatter.dateStyle = (showDate) ? dateFormatter.dateStyle : NSDateFormatterNoStyle;
dateFormatter.timeStyle = (showTime) ? NSDateFormatterShortStyle : NSDateFormatterNoStyle;
return [dateFormatter stringFromDate:date];
}
但是当手机设置中有12小时格式时,它会返回nil
。直到我明确地将区域设置为例如澳大利亚。
date
的时间为24小时格式。当前区域设置为ru_RU
(但en_EN
中的区域设置相同)。
答案 0 :(得分:1)
我遇到了类似的问题并找到了两个解决方案。一种是手动设置区域设置(我选择en_GB为24小时格式),另一种是设置时区。两者都为我个人工作。如果您不打算处理需要根据时区更改的日期,我建议您去设置区域设置,因为在处理时区时,源和目标时区会发挥作用,除非绝对必要,否则您无需处理所有这些。所以尝试设置区域设置,否则请选择时区。不知何故,它帮助覆盖了系统设置。
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
答案 1 :(得分:1)
您可以使用此
nlme