簡體   English   中英

如何從NSString獲取NSTimeInterval?

[英]How to get NSTimeInterval from NSString?

我試圖將以下字符串“2016-05-15T14:40:43.447”轉換為NSDate但它不是NSDateFormatter總是返回nil

這就是我目前正在做的事情。

- (NSTimeInterval) timeIntervalFromDateString:(NSString *)stringDate {
    if(!stringDate || ![stringDate length]) {
        return 0.0f;
    }
    static NSDateFormatter *df = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        df = [NSDateFormatter new];
        [df setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSS"];
    });
    NSDate *date = [df dateFromString:stringDate];
    // date is always returns nil.
    return [date timeIntervalSince1970];
}

我嘗試過設置以下格式:

yyyy-MM-dd'T'hh:mm:ss.SSS
yyyy-MM-dd'T'hh:mm:ssz
yyyy-MM-dd'T'hh:mm:ss Z
yyyy-MM-dd'T'hh:mm:ss.SSS Z
yyyy-MM-dd'T'hh:mm:ss.SSS z

但它們都沒有奏效。

我已經檢查過什么格式字符串我在iPhone上的日期字符串中使用毫秒? 同樣,但沒有幫助。

運氣好的話?

14:40:43是24小時格式,即大寫14:40:43 H.

yyyy-MM-dd'T'HH:mm:ss.SSS

試試這個代碼

- (NSTimeInterval) timeIntervalFromDateString:(NSString *)stringDate {
        if(!stringDate || ![stringDate length]) {
            return 0.0f;
        }
        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        df.timeZone = [NSTimeZone localTimeZone];
        df.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSS";
        NSDate *date = [df dateFromString:stringDate];

        return [date timeIntervalSince1970];
    }

暫無
暫無

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

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