簡體   English   中英

如何快速將NSString對象轉換為NSDate?

[英]How to translate a NSString object to NSDate quickly?

我嘗試從sqlite獲取的NSString獲取NSDate對象,但是存在時間問題。 每次我需要130毫秒。 而且我要處理200個對象,這是無法忍受的。 所以有人可以告訴我該怎么做。 謝謝。

假設您使用的是NSDateFormatter ,則應NSDateFormatter Apple的建議,即緩存格式化程序以提高效率 而不是每次要轉換日期時都創建NSDateFormatter ,而應保留NSDateFormatter的單個實例。 數據格式指南

緩存格式化程序以提高效率

創建日期格式器並不是一項便宜的操作。 如果您可能經常使用格式化程序,則緩存單個實例通常比創建和處置多個實例更為有效。 一種方法是使用靜態變量。

    NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"HH:mm:ss:SSS"];
     NSDate *currentdate=[formatter dateFromString:currentdateStr];
 //it returns DateObject If String in Specified Format otherwise Returns nil;

我認為此代碼塊將幫助您:

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"<Add Your Date Format>"];

        NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

        NSDateComponents *dateComponent = [calendar components:NSYearCalendarUnit
                                        |NSMonthCalendarUnit
                                        |NSDayCalendarUnit 
                                        fromDate:[dateFormatter dateFromString: <Add Your Date String> ]];

        [dateComponent setHour:24];
        [dateComponent setMinute:00];
        [dateComponent setSecond:00];

        <Your NSDate Object> = [calendar dateFromComponents:dateComponent];

可能需要根據日歷時間更改小時,分鍾,秒的dateComponent值。

讓我知道您是否遇到任何問題。

暫無
暫無

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

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