私はクラスでこの関数を書きました:
- (NSDate *) convertDate : (NSString *) dateStr{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *dateFrmStr = [[NSDate alloc] init];
dateFrmStr = [dateFormatter dateFromString:dateStr];
return dateFrmStr;
}
この関数を別のクラスで次のように呼び出しています。
NSString * dateStr1 =@"01-01-1977";
NSString * dateStr2 =@"22-12-1977";
NSString * dateStr3 =@"19-01-1978";
MyClass *data = [[MyClass alloc]init];
NSDate *dateObj1 = [data convertDate:dateStr1];
NSDate *dateObj2 = [data convertDate:dateStr2];
NSDate *dateObj3 = [data convertDate:dateStr3];
NSLog(@" >>> dateObj1 %@",dateObj1);
NSLog(@" >>> dateObj2 %@",dateObj2);
NSLog(@" >>> dateObj3 %@",dateObj3);
これを実行すると、出力が次のようになるため、最初の日付のみが変換されるようです。
>>> dateObj1 1977-01-01 00:00:00 +0000
エラーは何もありませんが、プログラムは停止します。