菜鸟教程小白 发表于 2022-12-13 13:27:17

ios - NSDate dateWithTimeIntervalSince1970 添加额外的一天


                                            <p><p><br/> 我有一个更新标签并充当秒表的方法。当我将字符串格式化为因子天时,它可以正常工作,它会增加额外的一天。 <br/><br/>例如。如果秒表在十分钟前启动,标签将显示:<br/>
01:00:10:00
<br/> 它应该只显示 <br/><br/> 00:00:10:00</p>

<pre><code>    - (void)updateTimer
{
    NSDate *currentDate = ;
    NSDate *dateValue=[ objectForKey:@&#34;pickStart&#34;];

    NSTimeInterval timeInterval = ;

    NSDate *timerDate = ;

    // Create a date formatter
    NSDateFormatter *dateFormatter = [ init];
    ;
    ];

    // Format the elapsed time and set it to the label
    NSString *timeString = ;
    self.stopWatchLabel.text = timeString;

}
</code></pre>

<p>任何帮助将不胜感激。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你所做的不合适。您的目标似乎是将 <code>timeInterval</code> 转换为天、小时、分钟和秒。您对 <code>timerDate</code> 和 <code>NSDateFormatter</code> 的使用不是实现该目标的正确方法。</p>

<p><code>timeInterval</code> 不是 1970 年 1 月 1 日的偏移量,<code>timeInterval</code> 不代表日期。</p>

<p>您应该做的是将 <code>currentDate</code> 和 <code>dateValue</code> 之间的区别作为一组 <code>NSDateComponents</code>。</p>

<pre><code>- (void)updateTimer {
    NSDate *currentDate = ;
    NSDate *dateValue = [ objectForKey:@&#34;pickStart&#34;];

    unsigned int unitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
    NSDateComponents *comps = [ components:unitFlags fromDate:dateValuetoDate:currentDateoptions:0];
    int days = ;
    int hours = ;
    int minutes = ;
    int seconds = ;

    NSString *timeString = ;
    self.stopWatchLabel.text = timeString;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - NSDate dateWithTimeIntervalSince1970 添加额外的一天,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37010014/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37010014/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - NSDate dateWithTimeIntervalSince1970 添加额外的一天