我需要将我在NSString中的某些日期转换为NSString格式:yyyy-MM-dd HH:mm:ss zzz
我写这段代码:
我写这段代码:
日期输入:日期—> 27/03/2012
-(NSString *)setDateStringFormat:(NSString *)date { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"dd/MM/yyyy"]; [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; //[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; NSDate *dateFormatted = [formatter dateFromString:date]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; return [formatter stringFromDate:dateFormatted]; }
输出:2012-03-27 00:00:00 GMT
你们都可以看到我在格林尼治标准时间而不是在UTC中获得了日期
有人有想法吗?
解决方法
试试这个方法..
-(NSString *)getUTCFormateDate:(NSString *)localDate { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd/MM/yyyy"]; NSDate *dateFormatted = [dateFormatter dateFromString:localDate]; NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; [dateFormatter setTimeZone:timeZone]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *dateString = [dateFormatter stringFromDate:dateFormatted]; [dateFormatter release]; return dateString; }