从NSString获取月,日,年,星期几

时间:2013-11-11 08:18:57

标签: ios objective-c date nsstring nsdate

如何将月,日,年,星期,时间与NSString分开显示为“2013-09-27 15:05:00”?

例如2013-09-27 15:05:00 NSString月:九月 NSString年份:2013年 NSString日:27 NSString工作日:星期一 NSString时间:15:05:00

请帮助我!

4 个答案:

答案 0 :(得分:2)

你可以使用NSMateComponents来做,如@Mikael所说,或者另一种方式是:

NSDateFormatter *df = [[NSDateFormatter alloc] init];

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

[df setDateFormat:@"dd"];

myDayString = [df stringFromDate:myDate];

[df setDateFormat:@"MMM"];

myMonthString = [df stringFromDate:myDate];

[df setDateFormat:@"yy"];

myYearString = [df stringFromDate:myDate];

[df setDateFormat:@"HH:mm:ss"];

myTimeString = [df stringFromDate:myDate];

[df release];

答案 1 :(得分: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];

答案 2 :(得分:1)

使用dateFromString:NSDateFormatter类的方法。您将获得NSDate对象。一旦你拥有它,你可以随心所欲地做任何事情。这基本上是一个日期和时间解析器,为每种情况提供了大量选项。编写自己的解析器是个坏主意......

在Apple Developer Documentation中完整阅读Date and Time Programming Guide。日期和时间不是微不足道的事情,知道如何在不同的情况下处理这些信息是明智的,特别是在编写国际应用程序时。

答案 3 :(得分: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]];