2016-11-14 6 views
2

これはiOS 10のバグのようです。 iOS 8および9では問題ありません。iOS 10のバグ?日本地域と24時間制のNSDate時間の説明

[NSDate date] .descriptionの時間記述は間違っています。 24時間の説明と12時間の説明が追加されています。私はNSDateFormatterを使用していません。ちょうどデフォルト設定。設定>一般>言語&地域における日本へ

  • 設定された領域>地域の書式]> [設定]で地域
  • セット24時間タイムオフ>一般:セッティングで本物のiOS 10デバイス、オン

    >日付&時間> 24時間の時間とその後

NSLog(@"Date is %@", [NSDate date].description); 

実際のログ出力:

Date is 2016-11-14 44:14:57 AM +0000 

期待出力:

Date is 2016-11-14 4:14:57 AM +0000 

編集(他の例を追加):

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd hh:mm:ss a"; 
NSString *dateString = @"1985-04-12 7:20:50 PM"; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date is %@", date.description); 

実際の出力:OU期待

Date is 1985-04-12 1010:20:50 AM +0000 

Date is 1985-04-12 10:20:50 AM +0000 

tputを私は24時間形式(HH)に時間を変更する場合:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss a"; 
NSString *dateString = @"1985-04-12 7:20:50 PM"; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date is %@", date.description); 

実際の出力:

Date is (null) 

予想される出力:

Date is 1985-04-12 10:20:50 AM +0000 
+0

24時間制は有効になっていません。オフです。 – unitwhy

+0

Appleにバグレポートを送信してください。問題を再現して修正できるように、簡単なサンプルアプリを含めてください。 – rmaddy

+0

私はAppleにバグレポートを提出しました。アドバイスありがとう – unitwhy

答えて

0

我々はなかったですiOS 10.xでも同様の問題に直面して、それを固定しましたg

NSLocale * POSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US_POSIX"]; dateFormatter.localeは(POSIXLocale)と等しくなければなりません。

関連する問題