Формататор даты Objective-C.гггг-мм-дд чч: мм: сс изменить на гггг-мм-дд - PullRequest
0 голосов
/ 24 октября 2018

Как получить Date-формат yyyy-MM-dd из строки yyyy-MM-dddd чч: мм: сс

NSString *dateValue = self.selectedReward.expires_at;
NSLog(@"Date value --- %@", dateValue);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [formatter dateFromString:dateValue];
[cell.lblExpire setText:[NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"lbl_Expired_On", nil),dateValue]];
NSLog(@"date %@", date);

2018-10-24 14: 58: 02.141296 + 0800 TKBakery [21601: 277978] Значение даты --- 2018-10-15 15:37:00

2018-10-24 14: 58: 02.141878 + 0800 TKBakery [21601: 277978] дата ---- (null)

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

В вашем вопросе вы четко упомянули формат даты, а затем, почему используются неправильные форматы

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//2018-10-15 15:37:00   
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:dateValue];
NSLog(@"date %@", date);
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *getFinalDate = [formatter stringFromDate:dateValue];
NSLog(@"final Date %@", getFinalDate);

, для получения дополнительной информации см. Этот пример output

0 голосов
/ 24 октября 2018

Преобразуйте строку в дату с правильным форматом, затем измените эту дату на строку с нужным форматом.

Измените код следующим образом:

NSString *dateValue = self.selectedReward.expires_at;
NSLog(@"Date value --- %@", dateValue);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //change the format
NSDate *date = [formatter dateFromString:dateValue];
//add this:
[formatter setDateFormat:@"yyyy-MM-ss"];
NSString *dateStr = [formatter stringFromDate:date];
[cell.lblExpire setText:[NSString stringWithFormat:@"%@ %@",NSLocalizedString(@"lbl_Expired_On", nil),dateStr]];
NSLog(@"date %@", dateStr);
...