2015-06-26 30 views
0

我需要一個來自NSDate的NSString,我只需要小時,分鐘和秒。 如果是下午一時四十分30秒我需要的字符串爲「134030」如何獲得不帶分隔符的格式化小時字符串?

NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init]; 
[userTimeFormatter setDateFormat:@"HHmmss"]; 

這是行不通的。如果我使用格式hhmmss它似乎工作,但它不是24小時格式。 有什麼建議嗎? 可能與語言環境有關?

+0

除了沒有實際調用'stringFromDate'什麼是不工作呢? –

+0

time:3:49:16 pm ...爲什麼那裏的分隔符是... – user426132

+0

'hh'或'HH'是一個很大的區別。 'hh'是'12h格式','HH'是'24h格式' – Jasper

回答

0

試過這種

NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init]; 
[userTimeFormatter setDateFormat:@"HHmmss"]; 

NSLog(@"%@",[userTimeFormatter stringFromDate:[NSDate date]]); 

,它工作正常。

0
NSDateFormatter *dtFormatter=[[NSDateFormatter alloc]init]; 
[dtFormatter setDateFormat:@"hh:mm:ss a"]; 
NSDate *date=[dtFormatter dateFromString:"1:40:30 PM"]; 


[dtFormatter setDateFormat:@"HHmmss"]; 
NSString *dateString=[dtFormatter stringFromDate:date]; 
+0

不起作用... 2015-06-26 14:15:54.483 asas [7634:3405196] aaa 1:40:30 pm .... – user426132

+2

此行爲的原因是Locale,請設置正確的Locale,Set你的NSDateFormatter的本地en_US_POSIX將解決這個問題。它適用於24小時制和12小時制。 – user426132

1

這樣做的原因行爲是區域設置,設置正確的語言環境,設置本地的NSDateFormatter到en_US_POSIX將解決這個問題。它適用於24小時制和12小時制。

NSDateFormatter *userTimeFormatter = [[NSDateFormatter alloc] init]; 
     [userTimeFormatter setDateFormat:@"HHmmss"]; 
     NSLocale *en_US_POSIX = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
     [userTimeFormatter setLocale:en_US_POSIX]; 

     NSLog(@"time:%@",[userTimeFormatter stringFromDate:userTime]); 
相關問題