【发布时间】:2013-11-04 18:34:33
【问题描述】:
我正在尝试将数据从 EXIF 日期解析为 NSDate。这是从图像文件中获取的示例日期字符串:
2013:10:15 19:19:31
它是year:month:day 24hour:minute:second 格式。我正在使用以下代码来解析:
NSDateFormatter *formatter = [[NSDateFormatter alloc] initWithDateFormat:@"yyyy:MM:dd HH:mm:ss" allowNaturalLanguage:YES];
formatter.formatterBehavior = NSDateFormatterBehavior10_4;
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSDate *date = [formatter dateFromString:dt];
如果我不设置格式化程序行为,它会抱怨在 10.0 格式化程序上尝试使用 10.4 的语言环境标识符。 (我在小牛队,我认为这是小牛队的一个新问题)无论如何我已经尝试过完全不设置语言环境,将语言环境设置为en_US_POSIX 而不仅仅是en_US,为格式化程序设置时区,更改@日期格式为 987654328@ 到 YYYY,allowNaturalLanguage 到 NO,但是,dateFromString 总是返回 nil。我的应用程序在 OS X Mavericks 上运行,我的系统语言是英语,如果重要的话,我的地区设置为土耳其。我希望我的应用程序是纯英语的,独立于用户所在的地区(包括日期格式)。我见过这个问题:Parsing EXIF date string to NSDate 但即使我尝试了确切的步骤,格式化程序也会为dateFromString 返回 nil。日期格式化程序有什么问题?
【问题讨论】:
-
成功了。奇怪的。它看起来像格式化程序中的错误。您能否将其发布为答案,以便我接受它,并对日期格式化程序的这种奇怪行为(如果有)有任何可能的解释?
-
看起来你做的一切都是正确的——没有解释,除了小鬼。
标签: objective-c macos cocoa nsdate nsdateformatter