转换日期格式

时间:2013-01-08 14:53:44

标签: objective-c ios

如何将此类日期格式转换为yyyy-MM-dd HH:MM:ss格式。

                "DATE_OF_JOINING":"\/Date(1349634600000+0530)\/"

2 个答案:

答案 0 :(得分:0)

使用NSDateFormatter。这将允许您以多种不同的方式格式化,并将其格式化为字符串。

这是苹果对iOS类的参考: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

答案 1 :(得分:0)

我更喜欢扫描器而非正则表达式从字符串中提取时间间隔

NSDictionary *dict = @{@"DATE_OF_JOINING" : @"Date(1357683534626+0530)"};

NSString *string = dict[@"DATE_OF_JOINING"];
NSString *intervalString;
NSString *offsetString;

NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setScanLocation:[string rangeOfString:@"("].location+1];
[scanner scanUpToCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@"+-"] intoString:&intervalString];
[scanner scanUpToString:@")" intoString:&offsetString];

NSInteger hours = [[offsetString substringToIndex:3] integerValue];
NSInteger minutes = [[offsetString substringFromIndex:3] integerValue];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
offsetComponents.hour = hours;
offsetComponents.minute = minutes;

NSTimeInterval interval= [intervalString doubleValue];

NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval/1000];

date = [[NSCalendar currentCalendar] dateByAddingComponents:offsetComponents toDate:date options:0];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *result = [formatter stringFromDate:date];