我有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
不一样?
感谢您的帮助。
答案 0 :(得分:4)
事实证明这是一个非常不明显的问题。
您的字符串@"11/11/2014 12:07:40 UTC−5"
中包含无效字符。时区中明显的短划线实际上是Unicode字符" MINUS SIGN" (U + 2212)而不是普通的老式" HYPHEN-MINUS" (U + 002D)。
将−
替换为-
,您的代码将正常运行。