Ios 使用UTC-5时区格式化程序将NSString转换为NSDate

Ios 使用UTC-5时区格式化程序将NSString转换为NSDate,ios,nsdate,nsdateformatter,nstimezone,Ios,Nsdate,Nsdateformatter,Nstimezone,我有一个NSDateFormatter: 我有这个字符串: 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 *

我有一个NSDateFormatter:

我有这个字符串:

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 *geolocaliser=@"11/11/2014 12:07:40 UTC−5" ;
我得到一个空值:lastLocatedUserDate=null

我认为问题在于UTC-5,但它与UTC+1不是一回事


谢谢你的帮助。

这是一个非常不明显的问题

您的字符串@11/11/2014 12:07:40 UTC−5中包含无效字符。时区中明显的破折号实际上是Unicode字符减号U+2212,而不是普通的旧连字符-U+002D


替换− 使用-您的代码将正常工作。

这是一个非常不明显的问题

您的字符串@11/11/2014 12:07:40 UTC−5中包含无效字符。时区中明显的破折号实际上是Unicode字符减号U+2212,而不是普通的旧连字符-U+002D


替换− 使用-时,您的代码将正常工作。

如果将zzz替换为O大写字母O,是否有效?如果字符串中的UTC替换为GMT呢?@rmaddy:我试过了,结果是一样的,它给了我一个空的nsdate值。如果将zzz替换为O大写字母O,是否有效?如果在字符串中用GMT替换UTC呢?@rmaddy:我试过了,结果是一样的,它给了我一个空的nsdate值。老实说,我只能说没有评论!我只是想知道你是怎么注意到的?我把你的代码复制并粘贴到一个测试应用程序中,果然,我也得到了零分。然后我编辑了几次时区字符串,直到我输入回UTC-5,它才起作用。所以我知道你的UTC-5和我的UTC-5一定不一样。所以我复制并粘贴了你的− 进入Unicode查看器,看到了它的真实面目。兄弟,非常感谢您抽出时间来帮助我!老实说,我只能说没有评论!我只是想知道你是怎么注意到的?我把你的代码复制并粘贴到一个测试应用程序中,果然,我也得到了零分。然后我编辑了几次时区字符串,直到我输入回UTC-5,它才起作用。所以我知道你的UTC-5和我的UTC-5一定不一样。所以我复制并粘贴了你的− 进入Unicode查看器,看到了它的真实面目。兄弟,非常感谢您抽出时间来帮助我!
NSString *geolocaliser=@"11/11/2014 12:07:40 UTC−5" ;