我有这个NSDateFormatter
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss zzz"];我有一个NSString:
NSString *geolocaliser=@"09/11/2014 03:03:20 UTC+1";我想把它转换成一个NSDate对象:
NSDate *lastLocatedUserDate =[formatter dateFromString:geolocaliser];这里的输出是完美的:lastLocatedUserDate=2014-11-09 02:03:20 +0000
现在,如果我有这个NSString:
NSString *geolocaliser=@"11/11/2014 12:07:40 UTC−5" ;我得到一个空值:lastLocatedUserDate=(null)
我想问题是因为UTC-5,但这和UTC+1不一样
谢谢你的帮助。
发布于 2014-11-13 16:27:23
事实证明这是一个非常不明显的问题。
您的字符串@"11/11/2014 12:07:40 UTC−5"中有一个无效字符。时区中明显的破折号实际上是Unicode字符“减号”(U+2212),而不是普通的旧“连字符-减号”(U+002D)。
将−替换为-,您的代码将正常工作。
https://stackoverflow.com/questions/26913346
复制相似问题