gpt4 book ai didi

objective-c - NSDateFormatter dateFromString 返回 nil 用于解析 EXIF 数据

转载 作者:行者123 更新时间:2023-12-03 17:40:02 24 4
gpt4 key购买 nike

我正在尝试将数据从 EXIF 日期解析为 NSDate。以下是从图像文件中获取的示例日期字符串:

2013:10:15 19:19:31

采用年:月:日24小时:分:秒格式。我使用以下代码来解析它:

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。 (我在 Mavericks,我认为这是 Mavericks 的一个新问题)无论如何,我尝试过完全不设置区域设置、将区域设置设置为 en_US_POSIX 而不仅仅是 en_US 的组合>,为格式化程序设置时区,将日期格式的 yyyy 更改为 YYYY,并将 allowNaturalLanguage 更改为 NO,但是,dateFromString总是返回nil。我的应用程序在 OS X Mavericks 上运行,我的系统语言是英语,如果重要的话,我的区域设置为土耳其。我希望我的应用程序仅支持英语,与用户所在的区域(包括日期格式)无关。我见过这个问题:Parsing EXIF date string to NSDate但即使我尝试了确切的步骤,格式化程序也会为 dateFromString 返回 nil。日期格式化程序出了什么问题?

最佳答案

这似乎是 initWithDateFormat 初始化程序的问题。根据文档,它创建了一个使用“OS X v10.0 格式化行为”的格式化程序,但我不知道那是什么。并且明确地将行为设置为 NSDateFormatterBehavior10_4 似乎也没有帮助。

使用

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy:MM:dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:@"2013:10:15 19:19:31"];

产生预期的结果。

关于objective-c - NSDateFormatter dateFromString 返回 nil 用于解析 EXIF 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19774638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com