4

サーバーから渡された時間だけを iOS アプリのラベルに表示したいのですが、適切な NSDateFormatter を設定する方法がわかりません。たとえば、サーバーからこのタイムスタンプを次の形式で取得します: 2013-02-27T18:15:00-0800、基本的にラベルに「10:15 AM」を表示したいのですが、これまでのところ何もありません幸運。私はこれを以下で試しました:

NSDateFormatter *timeFormatter = [[[NSDateFormatter alloc] init] autorelease];
            [timeFormatter setDateFormat:@"HH:mm a"];
            NSString *newTime = [timeFormatter stringFromDate:timeDate];
            NSLog(@"the new time is: %@", newTime);

しかし、出力には私の時間が 18:15 PM と表示されます。

NSDateFormatter でさまざまな組み合わせを探して試してみましたが、正しいものを見つけることができないようです.それ。

4

3 に答える 3

7

HH は 24 時間を表します。

hh 12 時間静置します。

それに応じて変更します。

于 2013-02-27T19:56:55.343 に答える
2

24 時間形式の HH を使用して時間形式を設定しています。12 時間形式を設定するには、次のコードを使用します。コード行がすべてを示しているため、あまり書く必要はありませんでした。

[timeFormatter setDateFormat:@"hh:mm a"];

タイムゾーンの問題を回避するために、フォーマッターにもタイムゾーンを設定してください

[timeFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"CET"]];
于 2013-02-27T19:57:04.767 に答える
0

hhではなく、を使用する必要がありますHH。前者は12時間用、後者は24時間用です。

于 2013-02-27T19:55:12.410 に答える