如何从像这样的“2013-09-27 15:05:00”这样的 NSString 中获取月、日、年、星期几、时间到单独的值?
例如 2013-09-27 15:05:00 NSString 月份:9 月 NSString 年份:2013 NSString 日:27 NSString 工作日:星期一 NSString 时间:15:05:00
请帮我!
如何从像这样的“2013-09-27 15:05:00”这样的 NSString 中获取月、日、年、星期几、时间到单独的值?
例如 2013-09-27 15:05:00 NSString 月份:9 月 NSString 年份:2013 NSString 日:27 NSString 工作日:星期一 NSString 时间:15:05:00
请帮我!
您可以像@Mikael 所说的那样使用 NSDateComponents 来做到这一点,或者另一种方式是:
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];
首先你需要 a 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];
使用 dateFromString: NSDateFormatter 类的方法。您将获得 NSDate 对象。拥有它后,您可以随心所欲地进一步使用它。这基本上是一个日期和时间解析器,每种情况都有一堆选项。编写自己的解析器将是一个坏主意......
完整阅读Apple Developer Documentation 中的日期和时间编程指南。日期和时间不是小事,明智的做法是充分了解如何在不同情况下处理这些信息,尤其是在编写国际应用程序时。
未经测试的代码,但它应该可以工作..请尝试
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]];