将日期从一种格式转换为另一种格式在目标c中返回nil

时间:2017-12-18 10:29:08

标签: ios objective-c date-format

我正在尝试转换进入​​的日期" 2017-12-05T00:00:00-0500"格式为Dec 05。为此我使用下面的代码,但每次都返回nil。我不知道这段代码有什么问题。请仔细检查代码,让我知道我的错误。非常感谢这方面的任何指导。提前谢谢!

 [dtF setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"];
        NSDate *d = [dtF dateFromString:[dic valueForKey:@"weight_date"]];
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setDateFormat:@" YYYY-MM-DD hh:mm:s"];
        NSString *st = [dateFormat stringFromDate:d];
        NSLog(@"%@",st);

3 个答案:

答案 0 :(得分:1)

NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dtF setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *d = [dtF dateFromString:[dic valueForKey:@"weight_date"]];//@"2017-12-05T00:00:00-05:00"
[dateFormat setDateFormat:@"MMM dd"];
NSString *st = [dateFormat stringFromDate:d];
NSLog(@"%@",st);

答案 1 :(得分:0)

您的日期格式错误我做了更改请检查答案。

检查以下代码我已将您的dic替换为您发布的日期:

NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
[dtF setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *d = [dtF dateFromString:@"2017-12-05T00:00:00-0500"];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd"];
NSString *st = [dateFormat stringFromDate:d];
NSLog(@"%@",st);

答案 2 :(得分:0)

当我测试你的代码时,我发现dtf没有返回值d是nil

所以dtf的格式应该是

yyyy-MM-dd'T'HH:mm:ss-SSSS

然后用此替换休息。

NSDate *d = [dtF dateFromString:[dic valueForKey:@"weight_date"]];
[dtF setDateFormat:@"MMM dd"];
NSString *st = [dtF stringFromDate:d];
NSLog(@"%@",st);