簡體   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