NSDate格式没有显示预期的内容

时间:2012-12-07 04:38:57

标签: ios nsdate xcode4.5 nsdateformatter

我在将日期打印为NSString时遇到问题。我已经以这种方式在我的应用生命周期的某些点存储了当前日期和时间:

NSDate *current = [NSDate date];
long currentTime = [current timeIntervalSince1970];

现在,我需要在UILabels中显示这些日期。我试过这种方式:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:currentTime];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy - HH:mm:ss"];
NSString *stringFromDate = [formatter stringFromDate:date]; 

但我没有得到正确的日期和时间。我能错过什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个,

NSString * stringFromDate = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle];

你也可以改变日期风格和时间风格。

答案 1 :(得分:0)

您的currentTime变量是long,而不是NSTimeIntervaldouble)。您不仅丢失了小数部分(不太重要),而且丢失了时间间隔的上限范围。将其更改为:

NSTimeInterval currentTime = [current timeIntervalSince1970];