Objective-C 日期格式化程序。 yyyy-MM-dd hh:mm:ss 更改为 yyyy-MM-dd

Objective-C dateformatter. yyyy-MM-dd hh:mm:ss change to yyyy-MM-dd

如何从字符串 yyyy-MM-dd 中获取日期格式 yyyy-MM-dd hh:mm:ss

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] Date value ---2018-10-15 15:37:00

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

将字符串转换为具有正确格式的日期,然后将该日期更改为具有您需要的格式的字符串。

修改代码如下:

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);

在你的问题中,你已经清楚地提到了日期格式,那么为什么使用了错误的格式

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);

有关详细信息,请参阅此示例