簡體   English   中英

將JSON字符串轉換為NSDate會發生錯誤

[英]Converting JSON string to NSDate occurs an error

這是我收到的需要轉換為NSDate的json字符串值:

2017-04-08T13:51:00.000 + 03:00

這是我轉換為NSDate的信息:

+ (NSDate *)stringDateToDate:(NSString *)aStringDate
{
    NSDate *date = nil;

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss:SSS"];

    date = [dateFormat dateFromString:aStringDate];
    NSLog(@"nsdate: %@", date);

    return date;
}

結果它記錄:

nsdate :(空)

似乎日期格式不正確。 如何解決這個問題?

使用以下日期格式符字符串

"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"

使用ZZZZZ作為時區/時區/時間偏移-例如+03:00
SSS小數秒-例如123
和最重要的用途. 在秒及其小數之間,而不是:

感謝rmaddy校正SZ的數量以滿足確切的要求輸入

請注意,您可以擺脫使用SZ而不是SSSZZZZZ因為解析器足夠聰明,無論如何都可以對其進行解析。 如果要從日期創建字符串,則需要上面的日期格式化程序字符串。

"yyyy-MM-dd'T'HH:mm:ss.SZ"

在此處輸入圖片說明

有關日期格式化程序字符串的更多詳細信息,請參見Unicode部分。
Date Format Patterns

最后的Z為時間偏移

+ (NSDate *)stringDateToDate:(NSString *)aStringDate
{
   NSDate *date = nil;

   NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
   [dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss:SSSZ"];

   date = [dateFormat dateFromString:aStringDate];
   NSLog(@"nsdate: %@", date);

   return date;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM