【问题标题】:NSDate from stange looking stringNSDate 来自 stange 的字符串
【发布时间】:2011-08-12 09:25:54
【问题描述】:

我有一个 NSDictionary,其日期值为: "日期":"/日期(1314313200000+0100)/",
我怎样才能把它变成一个 NSDate 因为它包含字符串是 "Date": 和 / ?

【问题讨论】:

    标签: iphone objective-c nsdate


    【解决方案1】:

    1314313200000 是自纪元日期 (1970-01-01) 以来的毫秒数,0100 是时区。您需要从字符串中解析出此信息并从中构建日期。 NSScanner 类非常适合从格式奇怪的文本中解析信息。

    // Init a scanner with your date string
    NSScanner* scanner = [NSScanner scannerWithString:@"Date:/Date(1314313200000+0100)/"];
    // Skip everything up to a valid numeric character
    [scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet]
                            intoString:NULL];
    // Parse numeric value into a 64bit variable
    long long milliseconds = 0;
    [scanner scanLongLong:&milliseconds];
    // Create a date instance from milliseonds sinve 1970-01-01
    NSDate* date = [NSDate dateWithTimeIntervalSince1970:milliseconds / 1000.0];
    

    如果时区也很重要,请跳过 + 符号并解析一个新数字。

    【讨论】:

      猜你喜欢
      • 2011-06-23
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多