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:@"pickStart"];
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:@"pickStart"];
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]