NSDateFormatter: how to convert date string with 'GMT' to local NSDate?

前端 未结 2 1505
予麋鹿
予麋鹿 2020-12-16 06:20

I need to convert a date string retrieved from a server, to local NSDate, the string looks like:

\"Fri, 30 Nov 2012 00:35:18 GMT\"

But now

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-16 06:50

    Note that NSDate's always store the date, internally, in GMT. You then use a date formatter to create a string in your local time zone. In this case, you are starting with a string so need to use the date formatter to create the date in the first place, and then use it again to create a string in your local time zone (which it defaults to when the timezone is not specified).

    NSString *dateString           = @"Fri, 30 Nov 2012 00:35:18 GMT";
    
    NSDateFormatter *dateFormatter = [NSDateFormatter new];
    dateFormatter.dateFormat       = @"EEE, dd MM yyyy HH:mm:ss zzz";
    
    NSDate *date                   = [dateFormatter dateFromString:dateString];
    NSString *localDateString      = [dateFormatter stringFromDate:date];
    
    NSLog(@"%@", localDateString);
    // Results:  Thu, 29 11 2012 19:35:18 EST
    

提交回复
热议问题