2012-11-27 147 views
3

我需要将一些日期,我已NSStringNSString格式为:yyyy-MM-dd HH:mm:ss zzz 我写这样的代码:转换的NSString日期UTC日期

日期输入:日期---> 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

,你都可以看到我得到的日期GMT而不是UTC 有人有想法吗?

回答

5

试试这个方法..

-(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; 
} 
+0

我一下你的方法,但我需要在UTC格式字符串,并输出结果是:2012- 03-26 22:00:00 – Sosily

+0

如果我添加yyyy-MM-dd HH:mm:ss zzz它也不是UTC – Sosily

+0

你的意思是如果你输入26-03-2012你想输出的是2012-03-26 00 :00:00? –

1

我认为,这里GMT显示标准时间和GMT和UTC都是一样的。 请看下面链接: http://wwp.greenwichmeantime.com/ http://www.worldtimeserver.com/convert_time_in_UTC.aspx

感谢

+0

我认为你的权利谢谢你 – Sosily