有趣的问题让我很着迷。
我从服务器接收到设备的字符串时间。然后我将其转换为 NSDate。当设备设置为显示 24 小时时间时,寿命很好。
现在我正在设置为 12 小时的设备上对其进行测试。一切都停止了工作。日期返回为空
我第一次有
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
非常适合显示 24 小时日期但不是 12 小时的设备。
然后我尝试了
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
这在中午 12 点之前都可以正常工作,然后所有日期都返回为 null
更新
我也尝试添加“a”,但这仍然导致返回 null
if (startDate == nil)
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];
}
更新 2
添加本地,添加:ss添加所有仍然不起作用
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *twelveHourLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
dateFormat.locale = twelveHourLocale;
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];