今天我的问题是关于日期格式和字符串。我的应用程序从 Internet 下载了一些代表日期的字符串。日期格式总是这样:“2010-05-24 at 20:45” 我需要将此字符串转换为 NSDate 对象以执行一些日期操作。我试过这段代码:
NSString * dateString = @"2010-05-24 at 20:45" // actually downloaded from the internet
NSDateFormatter * myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"];
NSDate * dateFromString = [myDateFormatter dateFromString:dateString];
只要 iPhone 设置为 24 小时制,这似乎工作得很好。只要我在常规设置中切换到 12h 时钟,就不会创建 NSDate 对象(并且应用程序会愉快地崩溃)我读过其他人遇到类似问题,但我似乎没有找到解决方案。现在的问题是:只要我指定它应该使用哪种格式来解析字符串(由于它来自网络,它是不可修改的),NSDateFormatter 对用户设置是敏感的对我来说没有意义,检查用户设置有什么用?更重要的是,我怎样才能执行我的任务(无论用户设置如何,从字符串中获取 NSDate 对象)?