【问题标题】:Time Duration From Labels标签的持续时间
【发布时间】:2018-10-13 05:39:26
【问题描述】:

我查看了此处所有与获取持续时间有关的代码。我需要做的只是花点时间在标签中,格式为 hr:m:s,例如 20:23:04。我需要从 currentTime.StringValue 和 oldTime.StringValue 中获取时间,然后让它在 durationOfTime.StringValue 中显示小时的持续时间。

例如说 currentTime = 11:00:04 和 oldTime = 9:00:04 然后我想要 durationOfTime = 2hr's。

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

【问题讨论】:

  • 查看DateIntervalFormatter 的文档。

标签: ios swift date time dateformatter


【解决方案1】:

使用 2 个格式化程序:DateFormatter 将字符串转换为 Date 对象和 DateComponentFormatter 以显示 2 个 Dates 之间的持续时间:

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
}

【讨论】:

  • 你可能想要H,而不是h
  • Man 这就像一个冠军,我不能感谢你的代码。非常感谢大家!!你真的帮了我很多。
【解决方案2】:

希望这会有所帮助。修改了 maddy 的建议。

    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)

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    相关资源
    最近更新 更多