NSDateFormatter和setDateFormat:和SSS

时间:2011-05-26 21:11:02

标签: objective-c nsdateformatter

使用NSDateFormatter,这是我的输入:

00:20:11,026 (NSString)

这是我想要的输出:

"00:20:11,026"; (NSDate)

但我得到的是:

"1970-01-01 00:20:11 +0100" (NSDate) 
// SSS is missing and there is too much information... 

这是我编码的内容:

...
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm:ss,SSS"];
[dateFormatter dateFromString:@"00:20:11,026"];
...

1 个答案:

答案 0 :(得分:1)

首先,你的NSDateFormatter很好。

根据输出判断,看起来你只是NSLogging一个实际的NSDate对象,并期望该格式代表用于创建它的NSDateFormatter。无论您是否从NSDateFormatter获取NSDate对象,所有NSDate对象的格式都是相同的。你担心的“1970-01-01 00:20:11 +0100”字符串实际上是由NSDate实现的-description方法提供的。

所以我的猜测是,虽然日志语句中缺少小数秒(SSS),但它们实际上存在并在NSDate对象中占用。此外,“太多信息”也只是NSDate提供的默认描述的工件。我非常确定您的实际NSDate包含您想要的所有信息。