菜鸟教程小白 发表于 2022-12-12 16:37:36

ios - NSDate 没有使用 NSDateFormatter 正确转换


                                            <p><p>我有以下 NSDateFormatter:</p>

<pre><code>NSDateFormatter* dateFormatter = [ init];
;

NSLocale *usLocal = [ initWithLocaleIdentifier:@&#34;en_US&#34;];
;
</code></pre>

<p>我有一个 while 循环,它从给定的开始日期开始,并将日期加一,直到达到特定的结束日期。</p>

<pre><code>NSDate *d = start;
while(YES){   
   NSString *td = ;
   NSLog(@&#34;converted date %@ to %@&#34;,d,td);
   ...adds a date and re-initializes d
}
</code></pre>

<p>我得到如下输出:</p>

<pre><code>2011-06-11 17:10:18.678 ListOf100 converted date 2011-05-31 00:00:00 +0000 to May. 30, 2011
2011-06-11 17:10:18.687 ListOf100 converted date 2011-06-01 00:00:00 +0000 to May. 31, 2011
2011-06-11 17:10:18.717 ListOf100 converted date 2011-06-02 00:00:00 +0000 to Jun. 1, 2011
</code></pre>

<p>如您所见,所有日期都没有正确转换。他们都休息了 1 天。为什么会发生这种情况?我该如何解决?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在我看来,日期创建的时区与格式化程序所在的时区不同。</p>

<pre><code>NSDate * d = ;   
// Arbitrary date

NSDateFormatter* dateFormatter = [ init];
;

NSLocale *usLocal = [ initWithLocaleIdentifier:@&#34;en_US&#34;];
;


//!!!: Set time zone
];

NSString *td = ;
NSLog(@&#34;converted date %@ to %@&#34;,d,td);
</code></pre>

<p>产量:</p>

<blockquote>
<p>2011-06-11 22:44:01.642 TimeZoneFormatter converted date 1970-01-10 06:13:20 +0000 to Jan. 10, 1970</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于ios - NSDate 没有使用 NSDateFormatter 正确转换,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/6318603/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/6318603/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - NSDate 没有使用 NSDateFormatter 正确转换