Getting date from string in object C

I need to get the date from the string, here the string will be in the format "Monday 02, Dec 2013", I need to convert it to "2013-12-2". I used the following code, but I get the wrong output:

-(void)dateSelectedInPickerView:(NSString *)dateSelected{

    NSDateFormatter *dateFormatterForGettingDate = [[NSDateFormatter alloc] init];
    [dateFormatterForGettingDate setDateFormat:@"YYYY-MM-dd HH:mm:ss"];

    // Parse the string representation of the date i.e Monday 2,Dec 2013

    NSDate *dateFromStr = [dateFormatter dateFromString:dateSelected];
    NSLog(@"date selected  : %@",dateFromStr);

    NSDateFormatter *tempFormatter=[[NSDateFormatter alloc]init];
    [tempFormatter setDateFormat:@"YYYY-MM-dd"];

    self.reservationDateSelected=[tempFormatter stringFromDate:dateFromStr];
    NSLog(@"date Selected : %@",self.reservationDateSelected);
}
+4
source share
2 answers

try this, it works for me with Monday 02,Dec 2013:

-(void)dateSelectedInPickerView:(NSString *)dateSelected{

NSDateFormatter *dateFormatterForGettingDate = [[NSDateFormatter alloc] init];
[dateFormatterForGettingDate setDateFormat:@"EEEE dd,MMM yyyy"];
[dateFormatterForGettingDate setLocale:[NSLocale localeWithLocaleIdentifier:@"EN"]];

// Parse the string representation of the date i.e Monday 2,Dec 2013

NSDate *dateFromStr = [dateFormatterForGettingDate dateFromString:dateSelected];
NSLog(@"date selected  : %@", [dateFromStr descriptionWithLocale:[NSLocale currentLocale]]);
NSDateFormatter *tempFormatter=[[NSDateFormatter alloc]init];
[tempFormatter setDateFormat:@"yyyy-MM-dd"];

self.reservationDateSelected=[tempFormatter stringFromDate:dateFromStr];
NSLog(@"date Selected : %@",self.reservationDateSelected);

}

Read this if you want to know more about date format templates ;-)

+7
source

1) yyyy, yyyy. yyyy " " - , . . .

2) " 02, 2013" "EEEE dd, MMM yyyy"

3) - - " 02, 2013" (- "" "" ), :/p >

NSDateFormatter *dateFormatterForGettingDate = [[NSDateFormatter alloc] init];
dateFormatterForGettingDate.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatterForGettingDate setDateFormat:@"EEEE dd,MMM yyyy"];

, :

-(void)dateSelectedInPickerView:(NSString *)dateSelected{

    NSDateFormatter *dateFormatterForGettingDate = [[NSDateFormatter alloc] init];
    dateFormatterForGettingDate.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    [dateFormatterForGettingDate setDateFormat:@"EEEE dd,MMM yyyy"];

    // Parse the string representation of the date i.e Monday 2,Dec 2013

    NSDate *dateFromStr = [dateFormatter dateFromString:dateSelected];
    NSLog(@"date selected  : %@",dateFromStr);

    NSDateFormatter *tempFormatter=[[NSDateFormatter alloc]init];
    [tempFormatter setDateFormat:@"yyyy-MM-dd"];

    self.reservationDateSelected=[tempFormatter stringFromDate:dateFromStr];
    NSLog(@"date Selected : %@",self.reservationDateSelected);
}
+5

All Articles