ios - 标签的持续时间

标签 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 = 2hr。

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

最佳答案

使用 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
}

关于ios - 标签的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50146031/

相关文章:

ios - Keep Alive 在 iOS 上无法正常工作

date - Elasticsearch现在可以解决问题

ios - 解析 : [Error]: object not found for update (Code: 101, 版本 : 1. 7.2)

ios - Swift 3 - 线程 1 : EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, 子代码 = 0x0)

ios - info.plist中的 "Application Requires iPhone Environment"键是什么意思?

ios - queryEqualTo 被跳过

java - UTC 字符串日期到本地日期

java - 本地日期不一致

iOS Firebase Stripe Integration with/Cloud Functions,相当于 iOS 中的 push() 和 push Id

ios - 您如何以 YYYY-MM-DD 格式快速获取上周日期?