アプリに適切な日付を表示するのに問題があります。ユーザーが日時設定で24時間形式を「オン」に設定すると、アプリは正しい時刻を表示しますが、24時間形式を「オフ」に設定すると、何も表示されません。
これが私が使用しているコードです:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:style];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *temp = [formatter dateFromString:strDate];
[formatter setDateFormat:format];
[formatter setLocale:[NSLocale currentLocale]];
NSString *returnStr = [formatter stringFromDate: temp];
[formatter release];
NSLog(@"Return: %@", returnStr);
return returnStr;
12時間:(hh:mm:ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
24時間:(HH:mm:ss)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
これを試して
[dateFormat setDateFormat:@"hh:mm:ss"];
[〜#〜] hh [〜#〜]:24時間形式
hh:12時間形式
だからあなたの場合
//after conversion to date
if ON
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
if OFF
[formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
これを使って:
Objective-C:
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
Swift 4.1
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
その後、日付は変更されません。
DateFormatterのロケールを次のように設定します。それはあなたの問題を解決するはずです。
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"];
NSString *dateString = [dateFormat stringFromDate:[NSDate date]];