NSDate от stange-выглядящей строки - PullRequest
0 голосов
/ 12 августа 2011

У меня есть NSDictionary со значением даты как: "Дата": "/ Дата (1314313200000 + 0100) /",
Как я могу превратить это в NSDate, так как он содержит строки лежат "Дата": и /?

1 Ответ

1 голос
/ 12 августа 2011

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];

Если часовой пояс также важен, просто пропустите знак + и проанализируйте новое число.

...