Frage 24-Stunden-Zeit ab Datumszeichenfolge


Ich versuche gerade die Zeit und das auch im 24 Stunden Format aus folgender Folge zu bekommen:

02.07.2015 14:30 Uhr 

Das habe ich ausprobiert:

-(NSString*)returnDate:(NSString*)dateString
{

    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
    [dateFormatter1 setDateFormat:@"MM/dd/yyyy hh:mm:ss aaa"];
    NSDate *date = [dateFormatter1 dateFromString:dateString];

   dateString = [date descriptionWithLocale:[NSLocale systemLocale]];



    NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
    NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];

    NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date];
    NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:date];
    NSTimeInterval gmtInterval = currentGMTOffset - gmtOffset;

    NSDate *destinationDate = [[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date];

    NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init];
    [dateFormatters setDateFormat:@"HH:mm a"];
    [dateFormatters setDateStyle:NSDateFormatterShortStyle];
    [dateFormatters setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatters setDoesRelativeDateFormatting:YES];
    [dateFormatters setTimeZone:[NSTimeZone systemTimeZone]];
    dateString = [dateFormatters stringFromDate: destinationDate];

    return dateString;
}

Ausgabe: 4:30

Dies ist die korrekte Uhrzeit, aber im 12-Stunden-Format. Ich möchte die Zeit im 24-Stunden-Format haben.

Gewünschter Output: 16:30


5
2017-07-05 14:06


Ursprung


Antworten:


Es gibt viel zu viel Code in der Frage, versuche dies:

NSString *dateString = @"7/2/2015 4:30:00 PM";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];

[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss aaa"];
NSDate *date = [dateFormatter dateFromString:dateString];

[dateFormatter setDateFormat:@"HH:mm"];
dateString = [dateFormatter stringFromDate: date];

NSLog(@"dateString: %@", dateString);

Ausgabe:

DatumString: 16:30


4
2017-07-05 14:50