【发布时间】:2013-08-17 17:25:28
【问题描述】:
引起我注意的有趣问题。
我收到从服务器到设备的字符串时间。然后我将其转换为 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];
【问题讨论】:
-
self.startTime 从何而来?
-
开始时间设置为@"14:00"
标签: ios objective-c nsdate nsdateformatter