Dr *_*Nic 13 cocoa parsing date
使用Cocoa框架,我如何将@"2008-12-29T00:27:42-08:00"解析为NSDate对象?标准-dateWithString:不喜欢它.
mfa*_*kas 31
您可以使用NSDateFormatter来解析日期:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
date = [dateFormatter dateFromString:dateStr];
Run Code Online (Sandbox Code Playgroud)
在Unicode的日期格式的模式定义您可以用使用格式字符串setDateFormat:的方法.
请注意,如果您的目标是10.4,那么您需要致电:[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];.不需要iphone或leopard,因为此模式是默认模式.
如果您只需要处理ISO 8601格式(该字符串是一个示例),您可以尝试我的ISO 8601解析器和解析器.
实际上,您需要设置时区,日历和区域设置.如果您未设置区域设置,则用户启用了AM/PM时间,格式化程序将添加AM/PM标记!如果您没有设置时区,它将使用当前时区,但会将其标记为"Z"("Zulu"或GMT).如果你没有设置日历,那么拥有日本帝国历法的用户将拥有自当前皇帝提升以来的年数,而不是自耶稣基督诞生以来的年数.一定要在我提到的所有场景中进行测试!
NSDateFormatter * f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
f.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
f.calendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
f.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease];
NSString * str = [f stringFromDate:someDate];
NSDate * date = [f dateFromString:dateStr];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7807 次 |
| 最近记录: |