NSDateFormatter stringFromDate返回空字符串

时间:2012-03-01 15:19:57

标签: objective-c

以下是我如何设置它:

self.df = [[NSDateFormatter alloc] init];
[self.df setFormatterBehavior:NSDateFormatterBehavior10_4];
[self.df setDateFormat:@"posted: MM-dd-YYYY"];

以下是我在跟踪中调用它的方式:

 NSLog(@"%@, %@, %@, %@", df, post.date, [post.date class], [df stringFromDate:post.date]);

这是输出:

<NSDateFormatter: 0x8440d60>, 2012-02-09 12:40:38 +0000, __NSDate, 

它不是空的,它是“”。

具有date属性的post类由核心数据自动生成。我看不出这有什么不同,但它是唯一看起来有点不寻常的东西。

2 个答案:

答案 0 :(得分:4)

你不能像那样使用setDateFormat。

我尝试了这段代码并且有效:

[self.df setDateFormat:@"MM-dd-YYYY"];

现在,你可以这样做:

NSString *myString = [NSString stringWithFormat:@"posted:%@", [df stringFromDate:post.date]];

答案 1 :(得分:0)

尝试使用TIME_CONSTANT进行日期数学运算时遇到了这个问题:

extern NSUInteger SECONDS_IN_A_DAY;

// ...

NSUInteger SECONDS_IN_A_DAY = 86400;

// ...

NSDate *yesterday = [[NSDate date] dateByAddingTimeInterval:-SECONDS_IN_A_DAY];

该日期的结果stringFromDate:将是@""

如果我直接使用86400而不是常量,那么NSString就可以了。

也许与否定NSUinteger有关的问题?如果您知道为什么这样不起作用,请发表评论。