0

I am using following code. Every time I get a null value for date.

NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);
4

3 に答える 3

2

date formatから有効なものを取得してからNSString、再度変換して、必要な出力を取得します。

NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *validDate = [dateFormat dateFromString:dateStr];
NSLog(@"Valid Date %@",validDate);             // 2013-06-09 18:30:00 +0000
[dateFormat setDateFormat:@"MMM, dd,yyyy"];
NSString *str = [dateFormat stringFromDate:validDate];
NSLog(@"Result String %@",str);               // Jun, 10,2013
于 2013-06-12T12:50:19.323 に答える
2

間違った形式を渡しています。UNICODE の日付形式パターンをNSDateFormatter使用します。したがって、フォーマットを修正すると正常に動作します。ここでこれを試すことができます:

NSString *dateStr = @"06/10/2013";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/YYYY"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"date %@",date);

また、Apple の Date Formatting guideもよく見てください。

編集: あなたのコメントのいくつかから、あなたがやろうとしていることはフォーマットを変更することであることがわかりましたが、あなたの質問はそれを意味しませんでした. フォーマットを変更しようとしている場合は、dateformatter フォーマットを必要なフォーマットに設定した後、NSString に戻す必要があります。これを一番下に追加して確認します:

[dateFormat setDateFormat:@"MMM, dd,yyyy"];
NSString *dateStrinfFormated = [dateFormat stringFromDate:date];
NSLog(@"Date in required format: %@",dateStrinfFormated);
于 2013-06-12T09:12:31.433 に答える
0
[dateFormat setDateFormat:@"MM/dd/yyyy"];
于 2013-06-12T09:12:41.567 に答える