1

我们目前正在创建一个使用现有 XML 的接口,并且在解析日期响应时遇到了问题。XML 将在 IOS 应用程序中使用。

XML 的 DateTime 格式为:MM/dd/yyyy HH:mm:ss.fffffff

因此,我们需要将该响应转换为适当的 NSDate。但是,我们无法使该格式正常工作。

一个简单的测试:

NSDateFormatter * df = [[NSDateFormatter alloc] init];  
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss.fffffff"];  
NSDate * dob1 = [[NSDate alloc]init];  
dob1 = [df dateFromString:@"03/26/1983 01:10:10.0000000"];

... dob1 将返回 nil

NSDateFormatter * df = [[NSDateFormatter alloc] init];  
[df setDateFormat:@"MM/dd/yyyy HH:mm:ss.0000000"];  
NSDate * dob1 = [[NSDate alloc]init];  
dob1 = [df dateFromString:@"03/26/1983 01:10:10.0000000"];

...这确实有效,但只允许'.0000000'

任何建议,将不胜感激。谢谢。

4

2 回答 2

0

为了扩展 rmaddy 的答案,您可以在格式字符串中输入的值NSDateFormatter取决于您所针对的 iOS(或 OS X)版本。

数据格式指南

固定格式

要为日期格式化程序指定自定义固定格式,请使用 setDateFormat:。格式字符串使用 Unicode 技术标准 #35 中的格式模式。标准的版本随操作系统的发布而变化:

  • OS X v10.8 和 iOS 6.0 中的格式化程序使用版本 tr35-25。

  • iOS 5.0-5.1 中的格式化程序使用版本 tr35-19。

  • OS X v10.7 和 iOS 4.3 中的格式化程序使用版本 tr35-17。

  • iOS 4.0-4.2 中的格式化程序使用版本 tr35-15。

  • iOS 3.2 中的格式化程序使用版本 tr35-12。

  • OS X v10.6 和 iOS 3.0-3.1 中的格式化程序使用版本 tr35-10。

您应该始终仔细检查您要使用的格式化程序是否将在您支持的所有平台上可用。

在您的情况下,您正在寻找“分数秒”,rmaddy 正确指出的是S,在 iOS 5.x 和 iOS 6.x 上

于 2013-10-24T15:38:19.203 回答
0

你应该使用这个格式化程序

@"MM/dd/yyyy HH:mm:ss.SSSSSSS"
于 2013-10-24T15:38:46.867 回答