2012-12-07 55 views
1

我在打印日期爲NSString時遇到問題。我已經存儲了當前日期和時間在我的應用程序生命週期的特定點是這樣的:NSDate格式沒有顯示預期的結果

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]; 

但我沒有得到正確的日期或時間。我可能會錯過什麼?

謝謝!

+0

有什麼不正確的?爲什麼不使用'current'變量並將其格式化?爲什麼使用時間間隔的東西?如果你記錄日期,是否正確? – rmaddy

+0

小問題:時間間隔是「雙」,而不是「長」,所以你在那裏失去了一些精度(儘管在這種情況下它不應該有任何影響)。 – warrenm

+0

當我嘗試它時(我認爲[currentDate timeIntervalSince1970]'應該是'[current timeIntervalSince1970]'',因爲'currentDate'沒有被定義),這工作得很好。 – dasblinkenlight

回答

2

嘗試此,

的NSString * stringFromDate = [NSDateFormatter localizedStringFromDate:日期DATESTYLE:NSDateFormatterMediumStyle timeStyle:NSDateFormatterMediumStyle];

您還可以更改日期樣式和時間樣式。

0

您的currentTime變量是long,而不是NSTimeInterval(a double)。你不僅失去了小數部分(不太重要),而且失去了時間間隔的上限。將其更改爲:

NSTimeInterval currentTime = [current timeIntervalSince1970];