[英]how to get time as Nsdate format in iOS?
你好,我想问一件事,我有NSString作为时间,我想在NSDate时间内转换此字符串,但是我不知道我得到了什么........
NSString *Time=@"17:00:00";
NSDateFormatter *dateFormatter3 = [[NSDateFormatter alloc] init];
[dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter3 setDateFormat:@"HH:mm:ss"];
NSDate *date1 = [dateFormatter3 dateFromString:Time];
NSLog(@"date1 : %@", date1);
输出 : date1:2000-01-01 11:30:00 +0000
我只希望NSDate格式的正确时间为17:00:00 ...如何获得此信息? ....
请解决这个问题。
设置时区,您将获得正确的输出,请尝试以下代码,
NSString *Time=@"17:00:00";
NSDateFormatter *dateFormatter3 = [[NSDateFormatter alloc] init];
[dateFormatter3 setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
[dateFormatter3 setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter3 setDateFormat:@"HH:mm:ss"];
NSDate *date1 = [dateFormatter3 dateFromString:Time];
NSLog(@"date1 : %@", date1);
尝试这个:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[[NSLocale alloc]
initWithLocaleIdentifier:@"en_US"]];
[formatter setDateFormat:@"HH:mm:ss"];
NSString *etaStr = @"17:00:00";
NSDate *generatedDate = [formatter dateFromString:etaStr];
NSLog(@"%@", [formatter stringFromDate:generatedDate]);
这对我有用:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm:ss";
NSLog(@"%@", [formatter stringFromDate:[NSDate date]]); // 07:23:38
NSDate *date = [formatter dateFromString:@"17:00:00"]; // 2000-01-01 15:00:00 +0000
NSLog(@"%@", date);
尝试这个,
NSString *Time=@"17:00:00";
NSDateFormatter *dateFormatter3 = [[NSDateFormatter alloc] init];
[dateFormatter3 setDateFormat:@"HH:mm:ss"];
NSDate *date1 = [dateFormatter3 dateFromString:Time];
NSLog(@"date1 : %@", date1);
或使用这些功能,
#define DATE_COMPONENTS (NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit)
+(NSDateComponents *)componentsForDate:(NSDate *)date
{
if (date!=nil)
{
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dayComponents =
[gregorian components:DATE_COMPONENTS fromDate:date];
return dayComponents;
}
return nil;
}
+(NSString *)timeFromNSDate:(NSDate *)date
{
int hour=[self componentsForDate:date].hour;
int minute=[self componentsForDate:date].minute;
int second=[self componentsForDate:date].second;
NSString *returnDateString= [NSString stringWithFormat:@"%d:%d:%d",hour, minute,second];
return returnDateString;
}
这是因为NSDate是日期和时间的组合。 当您打印任何NSDate时,它将以这种格式打印。 但是此NSDate中的NSString显示您真正想要的。 所以只需从您的日期中获取NSString作为
NSString *dateString = [dateFormatter3 stringFromDate:date1];
NSLog(@"date : %@ , date string : %@", date1, [dateFormatter3 stringFromDate:date1]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.