将NSstring日期转换为UTC日期

Sos*_*ily 3 iphone xcode objective-c ios

我需要在将一些日期,我必须NSStringNSString这种格式: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];
 }
Run Code Online (Sandbox Code Playgroud)

输出:2012-03-27 00:00:00 GMT

你们都可以看到我得到了约会GMT而不是UTC 某个人有想法吗?

Par*_*shi 6

试试这个方法..

-(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;
}
Run Code Online (Sandbox Code Playgroud)