0

NSStringからへの変換に関する 1 つの簡単なことNSDate。この同じ形式に変換Mon, 27 August 2012 01:30 AMするにはどうすればよい ですか。NSDateでやってみましたNSDateFormatter。しかし、私はこの必要な形式でそれを取得していません。誰でも助けることができますか?これは私が試したものです。

 NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE,dd MM yyyy HH:mm a"];
NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
NSLog(@"%@",date1);
4

6 に答える 6

1
NSString *myDateAsAStringValue = @"Mon, 27 August 2012 01:30 AM";

NSDateFormatter *df = [[NSDateFormatter alloc] init];

[df setDateFormat:@"EEE, dd MMM yyyy HH:mm a"];

NSDate *myDate = [[NSDate alloc]init];

myDate = [df dateFromString:myDateAsAStringValue];

[df release];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm a"];
NSString *strDate = [dateFormatter stringFromDate:myDate];
NSLog(@"%@", strDate);
[dateFormatter release];
于 2012-10-09T11:19:26.907 に答える
1

これが確実に役立つことを願っています!

NSDateFormatter *dateformater=[[[NSDateFormatter alloc] init]autorelease];
[dateformater setDateFormat:@"EEEE,dd MMMM yyyy HH:mm a"];

NSDate *todayTmp=[NSDate date];
NSString *conversionDate=[dateformater stringFromDate:todayTmp];

Note : (Upper case) HH for 24h time format, (Lower case) hh for 12h time format
于 2012-10-09T10:05:25.033 に答える
1

以下のコードを使用してください

   NSDateFormatter *df=[[NSDateFormatter alloc] init];
   [df setDateFormat:@"EEE,dd MMMM yyyy hh:mm a"];
   NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
   NSLog(@"%@",date1);

あなたのフォーマッタは間違っていますこれをチェックしてください

于 2012-10-09T12:52:14.813 に答える
0

NSLogはNSDateを固定形式で返します。別の形式のDateが必要な場合は、NSDateFormatterを介してフォーマットし、NSStringとして取得する必要があります。ただの推測。

于 2012-10-09T10:37:46.417 に答える
0

正しいロケールを設定することを忘れないでください! お使いのデバイスが英語のロケールを使用していない場合、 Mon はお使いの言語の月曜日の正しい省略形ではないため、NSDateFormatter は変換に問題が発生し、Mon有用な情報に変換される可能性があります。Augustたとえば、ドイツでは月曜日の正しい 3 文字の省略形は ですMon.

単語が含まれる日付を解析する場合は、正しいロケールを設定する必要があります。

これはうまくいくはずです:

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE,dd MMMM yyyy hh:mm a"];

NSLocale *posixLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[df setLocale:posixLocale];

NSDate *date1 = [df dateFromString:@"Mon,27 August 2012 01:30 AM"];
NSLog(@"%@",date1);

EEE は、3 文字の平日の略語の日付フォーマッター コードです。
hh は 1 から 12 までの時間の dateformatter コードです。HH は 0 から 23 を意味します。MMMM
は完全な月、MM は月の数値 (= 08) です。

于 2012-10-09T11:09:48.787 に答える
0

NSDateFormatterは、日付から文字列を抽出するときに日付文字列に表示される形式、または文字列から日付を抽出するときに日付文字列に含まれる形式を指定します

したがって、NSString から NSDate を抽出するたびに、NSDate は常にデフォルトの日付形式で取得されます (例: 2012-08-27 00:30:00 +0000 )... NSDateFormatter で設定した (カスタム) 形式。

于 2012-10-09T09:47:15.183 に答える