Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置从00:00:00开始的elapsedTime格式,而不是Swift中默认的07:00:00格式_Ios_Swift_Quartz Core - Fatal编程技术网

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

Ios 如何设置从00:00:00开始的elapsedTime格式,而不是Swift中默认的07:00:00格式,ios,swift,quartz-core,Ios,Swift,Quartz Core,我无法找到使用QuartzCore在00:00:00启动秒表显示的方法。它总是在07:00:00开始 有没有办法将开始时间设置为00:00:00?代码如下 谢谢 类别: import Foundation import QuartzCore class StopWatch: NSObject{ private var displayLink: CADisplayLink! private let formatter = DateFormatter() var callback: (() -

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

有没有办法将开始时间设置为00:00:00?代码如下

谢谢

类别:

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))
}

}

如以下评论中所述更正: 正如上面的评论所提到的,这是一个时区问题,因为我位于GMT+7。我添加了以下代码来解决此问题:


formatter.timeZone=时区(缩写:“GMT”)

这听起来很像一个时区问题。你在GMT+7吗?尝试将格式化程序的时区设置为GMT。感谢指针,这很有帮助。我添加了formatter.timeZone=NSTimeZone(名称:“GMT”)!由于时区不使用
NS…
类,带有转换为本机Swift结构的桥使用
TimeZone(缩写:“GMT”)谢谢,这个解决方案肯定更好