objective-c - NSDateFormatter stringFromDate 在使用 12 小时时间格式时返回 nil

标签 objective-c ios ios5 nsdateformatter

以下代码适用于 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 中是一样的)。

最佳答案

你可以用这个

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [formatter setLocale:locale];

关于objective-c - NSDateFormatter stringFromDate 在使用 12 小时时间格式时返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11414288/

相关文章:

: convert list of coordinates to a bezier curve 之后的 iOS 路径

ios - Swift 3 三元运算符错误类型 'Any' 没有下标成员

ios - 如何从 plist 文件中读取自定义对象数组?

iphone - UINavigationController 使一个 View 模态化

objective-c - iOS 初始化静态对象的成员失败

iphone - 如何在iphone中隐藏按钮的选择

ios - apple tv 支持音量控制吗?

ios - 如何拍摄未呈现的 UIView 的快照?

ios - <错误> : CGBitmapContextCreateImage: invalid context 0x0

ios5 - 重写scrollViewDidScroll时出现问题,但不是UIScrollViewDelegate的所有其他方法