0

次のコードを使用して、表のセルに時間を表示しようとしています。

TimeSlot *timeSlot = [timeSlots objectAtIndex:indexPath.row];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSLog(@"Time: %@", timeSlot.time);
NSDate *mydate = timeSlot.time;
NSLog(@"Time: %@", mydate);
NSString *theTime = [timeFormat stringFromDate:mydate];
NSLog(@"Time: %@", theTime);

ログ出力は次のとおりです。

  • 2010-04-14 10:23:54.626 MyApp[1080:207] 時間: 2010-04-14T10:23:54
  • 2010-04-14 10:23:54.627 MyApp[1080:207] 時間: 2010-04-14T10:23:54
  • 2010-04-14 10:23:54.627 MyApp[1080:207] 時間: (null)

私は iPhone 向けの開発を始めたばかりで、エラーや警告なしですべてコンパイルされるため、ログに NULL が記録される理由がわかりません。このコードに何か問題がありますか?

ありがとう

詳細情報

あなたの回答 lugte098 のコードを正確に使用して確認しましたが、日付を取得していたため、TimeSlot クラスの NSDate プロパティに日付を正しく設定できないと思われました。私の質問は、XML から NSDate プロパティを設定するにはどうすればよいですか?

私はこのコードを持っています(省略):

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *) string {
 if ([currentElement isEqualToString:@"Time"]) {
  currentTimeSlot.time = string
 }
}

ありがとう

4

3 に答える 3

3

編集された質問に基づいて:

XML からtimeSlotオブジェクトに文字列を設定しています。 NSDateFormatterto 形式が与えられることを期待しているNSDateため、元の質問が失敗するのはこのためです。

つまり、NSString から NSDate を作成する方法です。ドキュメントを参照してください。 dateFromString:getObjectValue:forString:range:error:またはのいずれかを使用できますgetObjectValue:forString:errorDescription:。したがって:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
currentTimeSlot.time = [df dateFomString:string];

nil の場合は、エラーを返すメソッドのいずれかを使用する必要があります。

于 2010-04-14T10:58:00.357 に答える
0

これは役立つかもしれません:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];

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

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];
于 2010-04-14T09:52:07.970 に答える
-2

設定する必要があります

[timeFormat setDateFormat:@"dd MMMM YYYY"];

NSString *theTime = [timeFormat stringFromDate:mydate];

この行

于 2010-04-14T09:53:22.153 に答える