我需要转换时间格式

时间:2018-01-25 04:58:50

标签: ios objective-c

时间是字符串格式,如10:27:43。但当我转换为日期格式。它将改变星期六1月1日10:27:43 2000.但我只需要时间如10:27:43

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

 NSLog(@"Date is %@", dateTime);

// Convert to new Date Format
[dateFormatter setDateFormat:@"HH:mm:ss"];
newDate = [dateFormatter stringFromDate:dateTime];

 NSLog(@" string Date is %@", newDate);

 NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init] ;
[dateFormatter1 setDateFormat:@"HH:mm:ss"];

 //[dateFormatter1 setDateFormat:@"dd/mm/yyyy"];
NSDate *dateFromString = [dateFormatter1 dateFromString:newDate];

NSLog(@"date format date %@",dateFromString);

3 个答案:

答案 0 :(得分:0)

你需要根据日期转换dateFormat,然后根据需要转换它。

请尝试以下代码..

NSString *dateTime = @"Thu Jan 25 10:38:11 2018";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss yyyy"];
    NSDate *dateFromString = [dateFormatter dateFromString:dateTime];
    NSLog(@"Date is %@", dateTime);
    // Convert to new Date Format
    [dateFormatter setDateFormat:@"HH:mm:ss"];
    NSString *result = [dateFormatter stringFromDate:dateFromString];
    NSLog(@"result %@",result);

答案 1 :(得分:0)

将日期组件中的时间拆分,并将其作为时间使用。

检查以下代码。

NSString *aStrTime = @"10:27:43";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:aStrTime];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];
NSInteger sec = [components second];

NSLog(@"%d:%d:%d", hour, minute, sec);

注意:根据您的需要更改aStrTimedateFormatPattern

答案 2 :(得分:0)

You can try the following code:-

For e.g:- if you are getting the date in 10-02-2017 12:30:50 format

NSString *strDate = @"10-02-2017 12:30:50";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"dd-mm-yyyy HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:strDate];
NSLog(@"The Date is: %@", date);

// By this code you will get the date in NSDate form. Now you can change the format to get the time

[dateFormat setDateFormat:@"HH:mm:ss"];
NSString *strFinalTime = [dateFormatter stringFromDate:strDate];
NSLog(@"strFinalTime: %@",strFinalTime);