11

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

5 に答える 5

46

これを試して

[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"];
于 2013-03-19T06:19:09.450 に答える
31

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

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"];
于 2013-12-10T09:34:25.870 に答える
14

これを使って:

Objective-C:

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

Swift 4.1

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

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

于 2013-03-19T06:17:27.217 に答える
5

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

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
于 2013-03-19T06:14:23.543 に答える
1
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm"]; 
NSString *dateString = [dateFormat stringFromDate:[NSDate date]];
于 2016-03-09T17:37:44.580 に答える