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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Objective-C dateformatter。 yyyy-MM-dd hh:mm:ss改为yyyy-MM-dd相关的知识,希望对你有一定的参考价值。

如何从字符串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)

答案

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

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

另一答案

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

更改代码如下:

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

以上是关于Objective-C dateformatter。 yyyy-MM-dd hh:mm:ss改为yyyy-MM-dd的主要内容,如果未能解决你的问题,请参考以下文章

DateFormatter 返回零

使 DateFormatter() 静态

DateFormatter 中的内存泄漏

DateFormatter 不转换特定日期 (Swift)

在swift中使用DateFormatter时发生错误[重复]

Dateformatter 返回零日期