文字列形式の日付を含むiPhone用のカレンダーアプリケーションを作成しました(例:「Tue、25 May 2010 12:53:58 +0000」)。
これをNSDate
に変換したい。
そのために何を使用する必要がありますか?
NSDateFormatterのクラス参照 をご覧ください。次のように使用します。
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];
NSDateFormatterをカスタマイズする方法の詳細については、 このリファレンスガイド を試してください。
編集:
ご存知のとおり、これは完全な月名を解析します。 3文字の月名が必要な場合は、LLL
の代わりにLLLL
を使用します。
-(NSString *)dateToFormatedDate:(NSString *)dateStr {
NSString *finalDate = @"2014-10-15";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:dateStr];
[dateFormatter setDateFormat:@"EE, d MMM, YYYY"];
return [dateFormatter stringFromDate:date];
}
IOSのスタイルのいずれかで日付を保存している場合、この方法を使用する方がはるかに簡単でエラーが少なくなります。
// Define a date formatter for storage, full style for more flexibility
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
[dateFormatter setTimeStyle:NSDateFormatterFullStyle];
// Use today as an example
NSDate *today = [NSDate date];
// Format to a string using predefined styles
NSString *dateString = [dateFormatter stringFromDate:today];
// Format back to a date using the same styles
NSDate *todayFromString = [dateFormatter dateFromString:dateString];