Objective-C dateformatter。 yyyy-MM-dd hh:mm:ss改为yyyy-MM-dd

问题描述 投票:0回答:2

如何从字符串yyyy-MM-dd获取日期格式yyyy-MM-dd: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]日期值--- 2018-10-15 15:37:00

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

ios objective-c nsdateformatter
2个回答
1
投票

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

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


1
投票

使用适当的格式将字符串转换为日期,然后将该日期更改为您需要的格式的字符串。

更改代码如下:

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);
© www.soinside.com 2019 - 2024. All rights reserved.