ios - NSDateFormatter dateFromString 1981-04-01
<p><p>我有代码:</p>
<pre><code>NSString *str = @"1981-04-01";
NSDateFormatter *dateFormatter = [ init];
;
NSDate *back = ;
NSLog("output: %@", back); //output (null)
</code></pre>
<p>当我尝试不同的日期时:</p>
<p>str = @"1982-04-01";//也返回nil</p>
<p>str = @"1985-04-01";//看起来不错,输出:1985-03-31 20:00:00 +0000</p>
<p>看起来我的时区是 GMT+4。
在模拟器中测试:xcode 6.3、ios 8.3 (iphone5s)</p>
<p>为什么 NSDateFormatter 有时返回 nil?</p>
<p>我相信这与我所在的地区有关:爱沙尼亚。
有关 OSX 和 iOS 区域设置的图片。</p>
<p> <a href="/image/V1yVg.png" rel="noreferrer noopener nofollow"><img src="/image/V1yVg.png" width="400" height="300"/></a> <br/>
<sub>(来源:<a href="http://darx.ignis.ee/osx_language_region.png" rel="noreferrer noopener nofollow">ignis.ee</a>)</sub></p>
<p> <a href="/image/fzexo.png" rel="noreferrer noopener nofollow"><img src="/image/fzexo.png" width="200" height="400"/></a> <br/>
<sub>(来源:<a href="http://darx.ignis.ee/ios_language_region.png" rel="noreferrer noopener nofollow">ignis.ee</a>)</sub></p>
<p><strong>已解决:</strong> 必须是夏令时开关问题。请阅读@Matthias Bauch 后面的评论。</p>
<ol 开始=“2”>
<li>添加 dateFormatter.timeZone = ;效果很好!</li>
</ol></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我建议您将时区设置为像 GMT 一样</p>
<pre><code>dateFormatter.timeZone = ;
</code></pre>
<p>您认为的完整代码。 . </p>
<pre><code>NSString *str = @"1981-04-01";
NSDateFormatter *dateFormatter = [ init];
dateFormatter.timeZone = ;
;
NSDate *back = ;
NSLog(@"output: %@", back);
</code></pre>
<p>你的输出像</p>
<pre><code>output: 1981-04-01 00:00:00 +0000
</code></pre></p>
<p style="font-size: 20px;">关于ios - NSDateFormatter dateFromString 1981-04-01,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/29621570/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/29621570/
</a>
</p>
页:
[1]