iOS 24 小时格式的时间

iOS time in 24 hours format

我想获取当前时间并将其解析为 24 hours 格式的 String,例如 13:30.

这是我的代码:

NSDate *date = [NSDate date];
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateFormat:@"HH:mm"];
NSString *timeString = [formatter stringFromDate:date];

它适用于 iOS simulator,但在我的 iPad 上我得到 3:30 PM

我试过不同的 formats 但结果还是一样。

知道为什么吗?

提前致谢。

问题是用户的本地设置为 12 小时格式。将本地设置为 en_US_POSIX 以覆盖用户的设置。

dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

您需要将语言环境明确设置为 24 小时制。

有关如何为 NSDateFormatter 设置语言环境的详细信息,请参阅 NSDateFormatter Locale

注意@mtb 对该问题的回答。它解释了如何不使用语言环境。