繁体   English   中英

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

[英]Converting date from one format to other returns nil in objective c

我正在尝试将“ 2017-12-05T00:00:00-0500”格式的日期转换为Dec05。为此,我正在使用以下代码,但每次都返回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);
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);

您的日期格式有误,我进行了更改,请检查答案。

检查以下代码,我已用有问题的日期替换了您的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);

当我测试您的代码时,我知道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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM