12時間形式を24時間形式に変換する必要があります。具体的には、私が通信するAPIのような日付のPM部分は24時間形式しか受け付けません。iOS日付12/24時間書式設定(目的C)
例:
02:00 PM
が14:00
に変換する必要があります。
08:30 PM
を20:30
に変換する必要があります。
私はいくつかのアプローチを試してきましたが、おそらく近づいてきましたが、かなり正しいとは言えません。
12時間形式を24時間形式に変換する必要があります。具体的には、私が通信するAPIのような日付のPM部分は24時間形式しか受け付けません。iOS日付12/24時間書式設定(目的C)
例:
02:00 PM
が14:00
に変換する必要があります。
08:30 PM
を20:30
に変換する必要があります。
私はいくつかのアプローチを試してきましたが、おそらく近づいてきましたが、かなり正しいとは言えません。
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];
iPhoneフォーマット文字列はUnicode formatです。リンクの背後には、上のすべての文字が何を意味するのかを説明する表があり、自分で作成することができます。
あなたのフォーマット文字列nsdateformatter.com聖霊降臨祭NSDateFormatter
例を見つけるためにあなたは、このウェブサイトを試すことができます:値が「2時00 PM」です。 NSDateFormatter *フォーマッタ= [[NSDateFormatter alloc] init]; [フォーマッタsetDateFormat:@ "hh:mm a"]; NSDate * date = [フォーマッタdateFromString:値]; NSLog(@ "12時間の日付:%@"、日付); これを記録すると、nullが返されます。 (ミッシングコードのハイライト表示には申し訳ありません)。 – Tatter
あなたの回答は役に立ちました。 NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US_POSIX"];私はそれを動作させるために次のものを追加する必要がありました。 [formatter setLocale:locale]; – Tatter
@Tatterローカルタイムゾーンを設定する必要があったので、あなたは完璧な時間を得られていないとここでは返答していません。 –