0

xmlフィードから渡されるNSStringがあります........

NSString *strDate =@"Thu, 22 Apr 2010 10.30 am CEST";

私は現在、このコードを使用して日付をフォーマットしています.......。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a vvvv"];
    NSDate *myDate = [dateFormatter dateFromString:date];
    [dateFormatter setDateFormat:@"HH"];
    NSLog(@"%@", [dateFormatter stringFromDate:myDate]);

時間のみを表示するように文字列をフォーマットしたいのですが、現在、このような値を取得しています。

strDate =@"2010-04-10 14:00:00 +0530";

誰かがこれを手伝ってくれませんか?......


ごめんなさい。私の間違いです。こんな感じになるはずです。

NSString *strDate =@"Thu, 22 Apr 2010 10:30 am CEST";

私の要件は、NSDateFormatterを使用して上記の文字列からのみ時間部分を取得することです。どうすればそれを達成できますか。以前の間違いでごめんなさい。

ありがとう。

4

3 に答える 3

1

10:30の10を取得したい場合(そのur要件の場合)、次のように実行できます。

strDate = @"Thu, 22 Apr 2010 10:30 am CEST";
NSArray *dateComponents = [strDate componentsSeparatedByString:@" "];
NSString *requiredString = [dateComponents objectAtIndex:4];
dateComponents = [requiredString componentsSeparatedByString:@":"];
requiredString = [dateComponents objectAtIndex:0];

そしてあなたがするとき:

NSLog(rquiredString);

出力: 10;

これは単なる回避策です。より良いアプローチを得るには、NSDateComponentsクラスを実行する必要があります。

お役に立てれば。

ありがとう、

マッドハップ

于 2010-04-22T10:54:08.233 に答える
0

あなたはこれをしたい:

NSString *strDate =@"Thu, 22 Apr 2010 10:30 am CEST";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a"];
NSDate *myDate = [dateFormatter dateFromString:strDate];
[dateFormatter setDateFormat:@"hh"];
strDate = [dateFormatter stringFromDate:myDate];
NSLog(@"%@", strDate);

(最初に、元のフォーマッターが間違っていました。代わりに:がありました。)編集はもはやケースではありません

次に、CESTビットを無視する必要があります。これにより、タイムゾーンが変更されます。

于 2010-04-22T10:14:59.203 に答える
0

への変更

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh.mm a vvvv"];

(。の代わりに:in hh:mm)

于 2010-04-22T10:15:32.213 に答える