- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已将 RSS 提要解析器集成到 iOS 应用程序中。接收到的数据中的字段之一是发布日期。如果 iPhone 语言环境是英语-美国,我可以解析该日期。但是当我将 iPhone 的语言更改为西类牙语时,它无法将字符串转换为 NSDate 对象。
这是我写的代码:
NSString* dt = @"Fri, 26 Jun 2015 00:00:00";
NSDateFormatter* dtFormatter = [[NSDateFormatter alloc] init];
//set the locale to spanish
[dtFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"es"]];
[dtFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm:ss"];
NSDate* conDt = [dtFormatter dateFromString:dt ];
NSLog(@"%@", conDt); //This value is always (null)
即使将语言环境设置为“es”(西类牙语),它仍然无法正确解析它。如何在 iOS 中将字符串转换为日期?
最佳答案
当您设置语言环境时,您不想使用设备的语言环境,而是使用创建字符串时使用的语言环境(因为您正在获取英文字符串并希望将其转换为 NSDate
与设备的语言环境无关)。事实上,建议使用 en_US_POSIX
:
[dtFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
参见 Technical Q&A #1480 .这侧重于 RFC 3999/ISO 8601 日期字符串的公历问题,但它也适用于语言设置。
顺便说一句,我注意到您没有设置时区。通常当日期不包含任何时区信息时,它们会被转换为 GMT/UTC/Zulu。所以你可能也想为你的格式化程序设置时区:
[dtFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
鉴于字符串的时间部分是“00:00:00”,这可能并不重要,但如果处理日期时间字符串,您通常希望确保正确捕获字符串中使用的时区,
关于ios - 在西类牙语语言环境中将 NSString 转换为 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31119023/
我是 Android 的新手,我想根据我的相机获取方向。如何根据我的相机获取方向信息?你能给出一个想法吗? 最佳答案 TYPE_ORIENTATION 已弃用 我们不能再使用方向传感器了,我们可以串联
我想知道矩阵除对角线之外的 4 个主要区域的条件。 例如下面的矩阵 A=[1,2,3,4,5; 6,7,8,9,10; 11,12,13,14,15; 16,17,18,19,20;
let latitude: = 36.6839559; let longitude = 3.6217802; 此API需要东西南北参数 const API = `http://api.geonames
我是一名优秀的程序员,十分优秀!