2014-05-08 29 views
0

爲什麼我無法使'T'以我的時間戳格式顯示?時間戳記日期格式編號'T'

我用:

NSDate *date = [NSDate date]; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setTimeZone:[NSTimeZone localTimeZone]]; 
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

這讓我發瘋了。我只得到:

 
2014-05-08 15:00:50 +0000 

我的預期下,隨着T

 
2014-05-08T22:31:51.900+0800 
+0

顯示創建並記錄您嘗試創建的日期字符串的代碼。 – rmaddy

回答

0

看起來你只是做了NSDate對象的NSLog而非NSString你從哪打來的日期格式的有stringFromDate

如果你做到以下幾點,你會使用格式化看到字符串:

NSDate *date = [NSDate date]; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
// [df setTimeZone:[NSTimeZone localTimeZone]]; // not needed, as it defaults to current time zone 
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 

NSString *dateString = [df stringFromDate:date]; 
NSLog(@"%@", dateString); 

順便說一句,以確保這一行爲可以預見,無論裝置的區域化設置,你可以要設置的語言環境,也:

NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
df.locale = enUSPOSIXLocale; 
df.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ"; 

NSDate *date = [NSDate date]; 
NSString *dateString = [df stringFromDate:date]; 
NSLog(@"%@", dateString); 

有關爲什麼建議的區域設置信息,請參閱Technical Q&A 1480

+1

這就是爲什麼我希望OP發佈更多的代碼。 – rmaddy

+0

@rmaddy同意;如果OP包含產生不正確輸出的代碼,那將會更好。但很容易推斷這裏發生的事情...... – Rob

相關問題