-4

この「2013-09-27 15:05:00」のように、月、日、年、曜日、時間を NSString から別の値に取得するにはどうすればよいですか?

たとえば、2013-09-27 15:05:00 NSString 月: 9 月 NSString 年: 2013 NSString 日: 27 NSString 平日: 月曜日 NSString 時間: 15:05:00

私を助けてください!

4

4 に答える 4

1

NSDate最初にからが必要ですNSString。次に、値を で区切ることができますNSDateComponents

これはそれを行う必要があります:

NSCalendar *sysCalendar = [NSCalendar currentCalendar];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *myDate = [df dateFromString: @"2013-09-27 15:05:00"];

unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *breakdownInfo = [sysCalendar components:unitFlags fromDate:myDate];
于 2013-11-11T08:28:19.323 に答える
1

NSDateFormatter クラスの dateFromString: メソッドを使用します。NSDate オブジェクトが返されます。それを手に入れたら、それを使って好きなことをさらに行うことができます。これは基本的に、あらゆる状況に対応する多数のオプションを備えた日付と時刻のパーサーです。独自のパーサーを作成するのは悪い考えです...

Apple Developer Documentation のDate and Time Programming Guideをよく読んでください。日付と時刻は些細なことではありません。さまざまな状況で、特に国際的なアプリを作成する場合に、この情報をどのように処理できるかを十分に理解しておくことが賢明です。

于 2013-11-11T08:29:25.253 に答える
0

テストされていないコードですが、動作するはずです..試してみてください

NSCalendar *myCalendar = [NSCalendar currentCalendar];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *myDate = [dateFormatter dateFromString: @"2013-09-27 15:05:00"];

NSDateComponents *dateComponents = [calendar components:NSDayCalendarUnit|NSMonthCalendarUnit|NSYearCalendarUnit fromDate:myDate];

NSString *day = [NSString stringWithFormat=@"%d", [dateComponents day]];
NSString *month = [NSString stringWithFormat=@"%d", [dateComponents month]];
NSString *year = [NSString stringWithFormat=@"%d", [dateComponents year]];
于 2013-11-11T08:38:43.527 に答える