【发布时间】:2011-08-12 09:25:54
【问题描述】:
我有一个 NSDictionary,其日期值为:
"日期":"/日期(1314313200000+0100)/",
我怎样才能把它变成一个 NSDate 因为它包含字符串是 "Date": 和 / ?
【问题讨论】:
标签: iphone objective-c nsdate
我有一个 NSDictionary,其日期值为:
"日期":"/日期(1314313200000+0100)/",
我怎样才能把它变成一个 NSDate 因为它包含字符串是 "Date": 和 / ?
【问题讨论】:
标签: iphone objective-c nsdate
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];
如果时区也很重要,请跳过 + 符号并解析一个新数字。
【讨论】: