興味深い問題が出てきました。iOS:文字列から12/24時間に切り替える
サーバーからデバイスに文字列の時間を受信します。私はそれからNSDateに変換します。 デバイスが24時間表示するように設定されていたとき、寿命は良好でした。
今は12時間に設定されたデバイスでテストしています。すべてが機能しなくなりました。日付は私が最初の24時間の日付を示すデバイスのために完全に働いた
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
ではなく、12hourを持っていた
nullとして戻って来ています。
は、私はその後
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm"];
self.startTime = [dateFormat dateFromString:(NSString *)self.startTime];
これは正午12時まで正常に動作を試してみました、そして、すべての日付がnullとして返され
更新
私も追加しようとしている「」しかし、このまだヌルを返す。
if (startDate == nil)
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"hh:mm a"];
startDate = [dateFormat dateFromString:(NSString *)self.startTime];
}
アップデート2
追加して、ローカルの追加:
NSLocale *twelveHourLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
dateFormat.locale = twelveHourLocale;
[dateFormat setDateFormat:@"hh:mm: a"];
self.startTimeはどこから来ますか? –
スタートタイムが@ "14:00"に設定されています – Burf2000