2014-05-08 117 views
0

將時間從24小時時間樣式轉換爲12小時時間樣式時出現問題。 當你看到日本時間表示的iOS標準時,它顯示12小時時間顯示0到11.
但是,使用iOS內置方法進行轉換時,它會在轉換00:00時提供午後12:00或者前12:00。 當您通過設置12小時時間樣式和地區日語看到鬧鐘應用程序時,您將看到時間顯示0到11.但是,當您使用iOS的內置方法時,會給出不同的結果。將日本標準時間的24小時時間轉換爲12小時時間樣式

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSLocale *locale = [DateUtility createLocale]; 
    locale=[[NSLocale alloc]initWithLocaleIdentifier:@"ja_JPPOSIX"]; 
    [dateFormatter setLocale:locale]; 
    dateFormatter.dateFormat = @"hh:mm"; 
    NSDate *date = [dateFormatter dateFromString:time]; 
    dateFormatter.dateFormat = @"a"; 
    NSLog(@"Meridian=%@",[dateFormatter stringFromDate:date]); 
    dateFormatter.dateFormat = @"hh"; 
    NSLog(@"Hour=%@",[dateFormatter stringFromDate:date]); 
+1

你能分享你正在使用的「內置方法」的代碼?例如,你使用的是「NSDateFormatter」嗎?你使用什麼風格或格式? –

回答

1

使用dateformate「KK」拿到小時範圍0〜11

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *locale = [DateUtility createLocale]; 
locale=[[NSLocale alloc]initWithLocaleIdentifier:@"ja_JPPOSIX"]; 
[dateFormatter setLocale:locale]; 
dateFormatter.dateFormat = @"KK:mm"; 
NSDate *date = [dateFormatter dateFromString:time]; 
dateFormatter.dateFormat = @"a"; 
NSLog(@"Meridian=%@",[dateFormatter stringFromDate:date]); 
dateFormatter.dateFormat = @"KK"; 
NSLog(@"Hour=%@",[dateFormatter stringFromDate:date]); 
1

如果你正在尋找一種方式來您的日期格式轉換爲非常具體的風格,我會建議使用NSDateFormatter類。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormate: @"yyyy-MM-dd HH:mm:ss"]; //This is just an example format, from one of my projects. It looks like this: "2014-05-07 18:32:25" 

NSString* dateString = [dateFormatter stringFromDate: [NSDate date]]; 

dateString現在應該有一個字符串與當前時間以您選擇的格式。

有關可以使用的所有格式的完整列表,請檢查this鏈接。希望這可以幫助。

相關問題