[英]Extract Date and Hour from NSDate - Objective C
我有这种格式的dateString
"mm/dd/yyyy '-' HH:mm"
。 我想提取字符串中的日期和字符串中的小时。 我尝试了以下代码,但这返回了错误的日期:
- (void) extractDate: (NSString *)dateString intoHour: (NSString *)hourLabel and: (NSString*)dateLabel {
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"mm/dd/yyyy '-' HH:mm"];
NSData *date = [formatter dateFromString:dateString];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSHourCalendarUnit | NSMinuteCalendarUnit fromDate:date];
hourLabel = [NSString stringWithFormat:@"%lu:%lu", [components hour], [components minute]];
dateLabel = [NSString stringWithFormat:@"%lu/%lu/%lu", [components day], [components month], [components year]];
}
示例字符串: "05/01/2015 - 11:15"
结果: date: 1/1/2015
, time: 11:15
以及如何保持这种日期格式dd/mm/yyyy
,我的意思是当一天是1
,它显示01
未测试,但:
MM
当月。 不是mm
,它是分钟。
你已经有了一个NSDateFormatter
那么为什么不再次使用它来代替NSDateComponents
和NSString
格式呢?
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MM/dd/yyyy '-' HH:mm"];
NSDate *date = [formatter dateFromString:dateString];
//Now you have the correct date. So we'll use the NSDateFormatter to transform NSDate (date) into NSString according to the format we need.
[formatter setDateFormat:@"MM/dd/yyyy"];
dateLabel = [formatter stringFromDate:date];
[formatter setDateFormat:@"HH:mm"];
hourLabel = [formatter stringFromDate:date];
hourLabel
/ dateLabel
作为NSString
而不是UILabel
是一个非常具有误导性的 var 命名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.