我想在图表上显示时间,并且我在这个@“2012-08-28 18:50:24”格式中有一个全时戳。当我试图从这个日期获得时间然后它在NSDate中返回nil。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *time = [formatter dateFromString:@"2012-08-28 18:50:24"];
仅当我将[formatter setDateFormat:@"HH:mm:ss"];
行更改为[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
时,才会在此代码中,然后它开始使用完整的日期和时间。但我只需要时间
答案 0 :(得分:4)
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *time = [formatter dateFromString:@"2012-08-28 18:50:24"];
[formatter setDateFormat:@"HH:mm:ss"];
NSString *str = [formatter stringfromdate:time];
NSLog(@"%@",str);
答案 1 :(得分:2)
NSDateFormatter用于根据您的要求格式化NSDate。 在这里,您从字符串中获取日期,因此您必须告诉NSDateFormatter查找具有该格式的字符串并将其转换为日期
NSDate包含日期和时间,因此如果您希望时间仅显示使用dateformatter来从NSDate获取时间组件
iOS在NSDate中一起管理时间和日期。实际上它们应该一起工作。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// GET Proper NSDate
NSDate *time = [formatter dateFromString:@"2012-08-28 18:50:24"];
//To your requirement
[formatter setDateFormat:@"HH:mm:ss"];
NSString *timestr=[formatter stringFromDate:time];
NSLog(@"%@",timestr);
答案 2 :(得分:2)
因为,首先你需要将你的字符串转换为
的右格式中的NSDate
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *aDate = [formatter dateFromString:@"2012-08-28 18:50:24"];
现在您可以根据需要重新格式化NSDateFormatter
。现在你可以从
[formatter setDateFormat:@"HH:mm:ss"];
NSString *newDate = [dateFormatter stringFromDate:aDate];
答案 3 :(得分:2)
如果您需要从字符串生成日期,则需要相应地设置日期格式。
首先创建NSDate对象很重要!只有这样,您才能将时间与整个日期分开。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *time = [formatter dateFromString:@"2012-08-28 18:50:24"];
然后
[formatter setDateFormat:@"HH:mm:ss"];
NSString *timeStr = [formatter stringFromDate:time];
您还可以使用其他字符串连接功能删除日期模块,如this.
但是,如果您首先拥有NSDate,那么之前的代码将起作用。
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSString *timeStr = [formatter stringFromDate:date];
答案 4 :(得分:2)
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"hh:mm:ss a"];
NSString *theTime = [timeFormat stringFromDate:[NSDate date]];
NSLog(@"time, %@",theTime);
答案 5 :(得分:1)
首先,您已在日期格式中转换了字符串日期和时间..
YourTimeStr = @"2012-08-28 18:50:24";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-mm-dd HH:mm:ss";
NSDate *DateAndTime = [formatter dateFromString:LogOutTimeSTR];
然后
NSDateFormatter *dateFormatter1 = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter1 setDateFormat:@"HH:mm:ss"];
[dateFormatter1 setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
NSString *YourTimeStr =[dateFormatter1 stringFromDate:DateAndTime];