2016-10-02 8 views
-2

12時間形式を24時間形式に変換する必要があります。具体的には、私が通信するAPIのような日付のPM部分は24時間形式しか受け付けません。iOS日付12/24時間書式設定(目的C)

例:

02:00 PM14:00に変換する必要があります。

08:30 PM20:30に変換する必要があります。

私はいくつかのアプローチを試してきましたが、おそらく近づいてきましたが、かなり正しいとは言えません。

答えて

0

NSDateFormatterを使用し、時刻形式を24時間形式に変換する必要があります。

NSString *time12Hours = @"02:00 PM"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"hh:mm a"]; 
NSDate *date = [formatter dateFromString:time12Hours]; 
[formatter setDateFormat:@"HH:mm"]; 
NSString *time24Hours = [formatter stringFromDate:date]; 
+0

例を見つけるためにあなたは、このウェブサイトを試すことができます:値が「2時00 PM」です。 NSDateFormatter *フォーマッタ= [[NSDateFormatter alloc] init]; [フォーマッタsetDateFormat:@ "hh:mm a"]; NSDate * date = [フォーマッタdateFromString:値]; NSLog(@ "12時間の日付:%@"、日付); これを記録すると、nullが返されます。 (ミッシングコードのハイライト表示には申し訳ありません)。 – Tatter

+0

あなたの回答は役に立ちました。 NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US_POSIX"];私はそれを動作させるために次のものを追加する必要がありました。 [formatter setLocale:locale]; – Tatter

+0

@Tatterローカルタイムゾーンを設定する必要があったので、あなたは完璧な時間を得られていないとここでは返答していません。 –

0

iPhoneフォーマット文字列はUnicode formatです。リンクの背後には、上のすべての文字が何を意味するのかを説明する表があり、自分で作成することができます。

あなたのフォーマット文字列nsdateformatter.com聖霊降臨祭NSDateFormatter