2

したがって、Webバックエンドから受信する「2013-03-20T21:13:26-7:00」のような日付文字列を受信します。私はバックエンドを制御できません。ただのfyiです。

私の好みは、日付を次のようにフォーマットすることです:3/20の午後9時13分。

私が次のことをするとき

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];

date無効である。

私の最初の考えは、日付文字列が奇妙に見えることです。受信するすべての日付に「-7:00」が追加されるため、Tと「-7:00」を削除する必要があります。それはのためです。

文字列が@"2013-03-2021:13:26"のように見えた後でも、dateまだnullです。

私は日付をフォーマットするのはプロではないことを認めますので、この問題について助けを得ることができれば、それは素晴らしいことです。

前もって感謝します!

4

3 に答える 3

14

dateFormatをdateFormatterに設定する必要があります

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];

[dateFormatter setDateFormat:@"hh:mma 'at' MM/yy"];
NSString *dateString = [dateFormatter stringFromDate:date];
于 2013-03-22T13:45:18.597 に答える
1

の日付形式を設定しdateFormatterます。問題は日付の最後の部分にあります。次に、次のように日付形式でTを設定できます。

  [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
  [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

  NSDate *date  = [dateFormatter dateFromString:@"2013-03-20T21:13:26-7:00"];
于 2013-03-22T13:42:33.873 に答える
0

dateFormatを設定し、

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
于 2013-03-22T13:45:18.810 に答える