1

私の文字列は次のようなものです 2012-12-08 17:00:00.0。現在、NSDateフォーマッターを使用してこの文字列から日付を取得しようとしています。私のコードは

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM hh:mm:ss"]; 
NSDate *date1 = [df dateFromString:@"2012-12-08 17:00:00.0"];
NSLog(@"%@ %@",date1);
[df release];

しかし、私が得ているのはnull値だけです。

yyyy/mm/dd hh:mm:ss私は、、、 ..のようなdateFormatterにいくつかのタイプを試しYYYY-DD-MM HH:MM:SSましたが、それでも使用できません..どんな提案でもいただければ幸いです。

4

4 に答える 4

1

誤って空の文字列リテラルを投稿に入力し、実際の日付が投稿に記載されているとおりであると仮定すると、24時間システムで時間を解析するHH代わりにを使用する必要があります。また、タイムストリングの最後のゼロを解析するには、フォーマットストリングにhh追加する必要があります。.S

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM HH:mm:ss.S"];
//                 here -------^^       ^------ and here
NSDate *date1 = [df dateFromString:@"2012-12-08 17:00:00.0"];
NSLog(@"%@",date1);

これにより、期待される出力が生成されます(時間の違いはタイムゾーンの違いによるものです)。

2012-08-12 21:00:00 +0000
于 2012-08-21T10:26:44.060 に答える
1

秒の後に継続時間のギャップがあり、dateformatter入力でstrDateを見逃していました。

NSString *strDate = @"2012-12-08 17:00:00.0";
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM hh:mm:ss.S"]; 
NSDate *date = [df dateFromString:strDate];// formatter format
NSLog(@"%@ %@",date);
[df release];
于 2012-08-21T10:44:11.227 に答える
0

これを行う:

NSString *strDate = @"2012-12-08 17:00:00.0";
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM HH:mm:ss.S"]; 
NSDate *date1 = [df dateFromString:strDate];// forgot to add valid string for according to date formatter format
NSLog(@"%@",date1);
[df release];
于 2012-08-21T10:25:32.437 に答える
0
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSDate *today = [NSDate date];
NSString *currentDate=[dateformat stringFromDate:today];
NSLog(@"PrintToday Date is %@ ",currentDate);

NSDate * date1 = [df dateFromString:@ ""];

上記の行に文字列を渡す必要があります

于 2012-08-21T10:26:10.410 に答える