web-dev-qa-db-ja.com

Objective-cで日付形式を24時間に設定するにはどうすればよいですか?

アプリに適切な日付を表示するのに問題があります。ユーザーが日時設定で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;
11
Manish Verma

非常に簡単にこれを試してください:

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"];
31

これを試して

[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"];
46
Lithu T.V

これを使って:

Objective-C:

dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];

Swift 4.1

dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")

その後、日付は変更されません。

14
KDeogharkar

DateFormatterのロケールを次のように設定します。それはあなたの問題を解決するはずです。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
5
Xcoder
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"]; 
NSString *dateString = [dateFormat stringFromDate:[NSDate date]];
1
Kerstin