NSDateFormatter时区(Etc/GMT)未被解析为dateFromString

dar*_*nde 4 iphone timezone datetime

我试图2011-07-11 13:28:59 Etc/GMT通过以下代码将其转换为NSDate 变得无效

NSString *dateString=@"2011-07-11 13:28:59 Etc/GMT";
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd hh:mm:ss z"];
NSDate *purchaseDate = [dateformatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)

此日期来自苹果服务器本身,用于应用内购买验证.我用时区去了很多线程.但它们都没有显示如何转换它Etc/GMT

我试过了 z zz zzz zzzz Z ZZ ZZZ ZZZZ

这可能是什么问题.

Rud*_*vič 14

正确的dateFormat是:

yyyy-MM-dd HH:mm:ss VV


iOS*_*per 8

// Swift版本

    let DateString = "2016-01-21 00:29:09 Etc/GMT"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss VV"
    var dateObject = dateFormatter.date(from: DateString)
Run Code Online (Sandbox Code Playgroud)


kal*_*ani 2

NSString *dateString=@"2011-07-11 13:28:59 Etc/GMT";
dateString = [dateString stringByReplacingOccurrencesOfString:@"Etc/GMT" withString:@"GMT"];
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];

// Or stuff....>>

NSDate *date = [dateformatter dateFromString: dateString];
NSLog(@"You may Need This  =========%@",date);
dateformatter = [[[NSDateFormatter alloc] init] autorelease];
[dateformatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];

NSString *convertedString = [dateformatter stringFromDate:date];
NSLog(@"Converted String : %@",convertedString);
Run Code Online (Sandbox Code Playgroud)

/// 可能有帮助 =====>> http://unicode.org/reports/tr35/

  • 警告一下,Etc/GMT 和 GMT 不是一回事。 (2认同)