1

サーバーから時間値を取得しています。形式は次のとおりです。

「2012 年 5 月 13 日午前 6 時 5 分」

文字列には指定されていませんが、「EDT」であることはわかっています。

する必要がある:

1) 午前/午後のことを取り除きます。

2) EDT (または他のタイムゾーン) から現地の GMT+/-x 時間に変換します。

私のタイムゾーン(イタリア、GMT + 1)の場合、次のようになります。

"2012/05/13 12:05"

NSDateFormatterでこれを行うにはどうすればよいですか?

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale: [NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];

...?

ありがとう

ニコラ

4

1 に答える 1

1

まず、NSDateFormatters の dateFormat をソース形式に設定します。あなたの場合:

[dateFormatter setDateFormat:@"M/d/yyyy h:mma"];
NSDate *myDate = [dateFormatter dateFromString:@"5/13/2012 6:05am"];

これにより、NSDate の新しいインスタンスが作成されます。ここで、フォーマッター dateFormat をターゲット形式に設定します。

[dateFormatter setDateFormat:@"dd/MM/yyyy hh:mm"];
NSString *myString = [dateFormatter stringFromDate:myDate];

文字列を NSDate インスタンスに変換するためのものと、修正された NSString に戻すためのものです。

詳細および現在のフォーマット仕様の完全なリストについては、Unicode リファレンスおよびApple Docsを参照してください。

于 2013-05-13T10:46:00.690 に答える