现在的位置: 首页 > 综合 > 正文

线程安全的 iOS 日期格式化

2017年11月14日 ⁄ 综合 ⁄ 共 1051字 ⁄ 字号 评论关闭

NSDateFormatter 不是线程安全的!!!




+ (NSDateFormatter *)dateReader

{

    NSMutableDictionary *dictionary = [[NSThreadcurrentThread]
threadDictionary];

    NSDateFormatter *dateReader = [dictionaryobjectForKey:@"SCDateReader"];

    if (!dateReader)

    {

        dateReader = [[[NSDateFormatter
alloc
] init] autorelease];

        dateReader.locale = [[[NSLocalealloc]
initWithLocaleIdentifier:@"en_US_POSIX"]autorelease];

        dateReader.timeZone = [NSTimeZonetimeZoneForSecondsFromGMT:0];

        dateReader.dateFormat =@"EEE, dd MMM yyyy HH:mm:ss Z";

        [dictionary setObject:dateReader
forKey
:@"SCDateReader"];

    }

    return dateReader;

}

+ (NSDateFormatter *)dateWriter

{

    NSMutableDictionary *dictionary = [[NSThreadcurrentThread]
threadDictionary];

    NSDateFormatter *dateWriter = [dictionaryobjectForKey:@"SCDateWriter"];

    if (!dateWriter)

    {

        dateWriter = [[[NSDateFormatter
alloc
] init] autorelease];

        dateWriter.locale = [NSLocalecurrentLocale];

        dateWriter.timeZone = [NSTimeZonedefaultTimeZone];

        dateWriter.dateStyle =NSDateFormatterMediumStyle;

        [dictionary setObject:dateWriter
forKey
:@"SCDateWriter"];

    }

    return dateWriter;

}

抱歉!评论已关闭.