Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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 标签的持续时间_Ios_Swift_Date_Time_Dateformatter - Fatal编程技术网

Ios 标签的持续时间

Ios 标签的持续时间,ios,swift,date,time,dateformatter,Ios,Swift,Date,Time,Dateformatter,我已经看了这里所有与获取持续时间有关的代码。我所需要做的只是花一段时间在标签上,以这种格式hr:m:s为例,比如20:23:04。我需要从currentTime.StringValue和oldTime.StringValue中获取时间,然后让它在durationOfTime.StringValue中显示小时的持续时间 例如,假设currentTime=11:00:04和oldTime=9:00:04,那么我想要durationOfTime=2小时 就是现在,我有一个代码,可以得到时间,并以上面的

我已经看了这里所有与获取持续时间有关的代码。我所需要做的只是花一段时间在标签上,以这种格式hr:m:s为例,比如20:23:04。我需要从currentTime.StringValue和oldTime.StringValue中获取时间,然后让它在durationOfTime.StringValue中显示小时的持续时间

例如,假设currentTime=11:00:04和oldTime=9:00:04,那么我想要durationOfTime=2小时


就是现在,我有一个代码,可以得到时间,并以上面的格式存储它。但是,我在这里尝试不同的代码时遇到了各种各样的问题,这些代码与持续时间有关。

使用两个格式化程序:一个
DateFormatter
将字符串转换为
Date
对象,另一个
DateComponentFormatter
显示两个
日期之间的持续时间:

let currentTimeStr = "11:00:04"
let oldTimeStr = "9:00:04"

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm:ss"

let dateComponentFormatter = DateComponentsFormatter()
dateComponentFormatter.allowedUnits = [.hour, .minute]
dateComponentFormatter.unitsStyle = .short

if let currentTime = dateFormatter.date(from: currentTimeStr),
    let oldTime = dateFormatter.date(from: oldTimeStr),
    let durationStr = dateComponentFormatter.string(from: oldTime, to: currentTime)
{
    print(durationStr) // 2 hrs
}

希望这是有帮助的。编辑了麦迪的建议

    let currentTime = "11:00:04"
    let oldTime = "9:00:04"

    let currentTimeComponents = currentTime.components(separatedBy: ":")
    let oldTimeComponents = oldTime.components(separatedBy: ":")

    let hrsDifference = Int(currentTimeComponents[0])! - Int(oldTimeComponents[0])!
    let minutesDifference = Int(currentTimeComponents[1])! - Int(oldTimeComponents[1])!
    let secondsDifference = Int(currentTimeComponents[2])! - Int(oldTimeComponents[2])!

    print("hrsDifference = ",hrsDifference)
    print("minutesDifference = ",minutesDifference)
    print("secondsDifference = ",secondsDifference)

请看一下
DateIntervalFormatter
的文档。您可能想要
H
,而不是
H
。伙计,这就像一个冠军,我对您的代码感激不尽。非常感谢大家!!你真的帮了我很多忙。