2

私が試してみました :

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
  [dateFormatter setDateFormat:@"MM/dd/yyyy"];
  NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
  NSLog(@"Date = %@", dateCheck);

出力値は次のとおりです。Date = 2012-12-11 18:30:00 +0000

上記の結果を達成するにはどうすればよいですか? 問題がどこにあるのかわかりません。助けてください。助けていただければ幸いです。よろしくお願いします。

4

4 に答える 4

4

これを試して、

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);

[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:dateCheck];
NSLog(@"dateString = %@", dateString);

出力:

dateString = 2012-12-12

@"MM/dd/yyyy"12/12/2012 ではなく、12/12/2012 を表します。2012-12-12 に変換する場合は、日付形式を次のように設定してから、@"yyyy-MM-dd"上記のように再度文字列に変換する必要があります。

日付形式の詳細については、このUnicode Date Format Patterns を確認してください。

ここでは、最初の変換で文字列を日付に変更し、次に@"yyyy-MM-dd"必要な形式で文字列に再度変換するために使用しています。

于 2012-12-24T19:40:50.440 に答える
3

特定の方法でフォーマットされた日付が必要な場合は、引き続き使用できますNSDateFormatter。追加するだけです。また、ACB が指摘したように、を使用する場合はから変換する必要があり、それ以外の場合は使用する必要があります[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *string = [dateFormatter stringFromDate:dateCheck];
NSLog(@"Date = %@", string);


@"12/12/2012"MM-dd-yyyyMM-dd-yy

于 2012-12-24T19:42:34.760 に答える
3

2 つのフォーマッターが必要です。1 つは元の文字列をNSDate(現在のように) に変換し、2 番目は をNSDate目的の形式の新しい文字列に変換します。

NSDateとしてログインすると、常に表示されている形式で表示されることに注意してください。

于 2012-12-24T19:42:49.197 に答える
2
`Date = 2012-12-11 18:30:00 +0000` 

から

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yy"];
NSDate *dateCheck = [dateFormatter dateFromString:@"12/12/12"];
NSLog(@"Date = %@", dateCheck);

[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:dateCheck];
NSLog(@"dateString = %@", dateString);

正しい日付を取得しています。タイムスタンプとロケールが異なるため、2012-12-12 は表示されません...

于 2012-12-24T19:47:49.590 に答える