首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何格式化elapsedTime从00:00开始,而不是Swift中的默认07:00:00

如何格式化elapsedTime从00:00开始,而不是Swift中的默认07:00:00
EN

Stack Overflow用户
提问于 2017-11-20 07:44:11
回答 1查看 51关注 0票数 0

我无法找到使用QuartzCore在00:00启动秒表显示的方法。总是从07:00开始。

有办法把开始时间设置为00:00吗?密码在下面。

谢谢!!

类:

代码语言:javascript
复制
import Foundation
import QuartzCore

class StopWatch: NSObject{

private var displayLink: CADisplayLink!
private let formatter = DateFormatter()

var callback: (() -> Void)?
var elapsedTime: CFTimeInterval!

override init() {
    super.init()
    self.displayLink = CADisplayLink(target: self, selector: #selector(tick(sender:)))
    displayLink.isPaused = true
    displayLink.add(to: RunLoop.main, forMode: RunLoopMode.commonModes)
    self.elapsedTime = 0.0
    formatter.dateFormat = "HH:mm:ss"
}
convenience init(withCallback callback: @escaping () -> Void) {
    self.init()
    self.callback = callback
}
deinit {
    displayLink.invalidate()
}

func tick(sender: CADisplayLink) {
    elapsedTime = elapsedTime + displayLink.duration
    callback?()
}


func elapsedTimeAsString() -> String {
    return formatter.string(from: Date(timeIntervalSinceReferenceDate:elapsedTime))
}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 08:05:39

更正如下:正如上面提到的批注,这是一个时区问题,因为我位于格林尼治时间+7。我添加了以下代码来解决这个问题:

formatter.timeZone =TimeZone(缩写:"GMT")!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47387181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档