gpt4 book ai didi

ios - 仅比较 Date 对象中的时差

转载 作者:搜寻专家 更新时间:2023-11-01 05:56:44 25 4
gpt4 key购买 nike

我有两个 Date 对象,我只想比较它们之间的时差,忽略日期。会是这样的:

dt1 =(日期)2016-09-22 20:05:01 UTC
dt2 =(日期)2016-08-20 22:06:00 UTC

并且 dt1 和 dt2 之间的差异为 2 小时或 121 分钟。

Swift 中有我可以做到的功能吗?

最佳答案

您可以使用Calendar 提取DateComponents,然后将其中一个的日、月、年与另一个的时、分、秒组合成另一个日期 对象。然后,您可以使用文档齐全的方法比较共享相同日期的两个 Date 对象。

例如,给定date1date2,我们可以用date1的日期计算date3,但是时间日期 2。然后我们可以将 date1 与这个新的 date3 进行比较:

let calendar = Calendar.current
let components2 = calendar.dateComponents([.hour, .minute, .second], from: date2)
let date3 = calendar.date(bySettingHour: components2.hour!, minute: components2.minute!, second: components2.second!, of: date1)!

然后,获取 date1date3 之间的分钟数:

let minutes = calendar.dateComponents([.minute], from: date1, to: date3).minute!

或小时和分钟:

let difference = calendar.dateComponents([.hour, .minute], from: date1, to: date3)
let hours = difference.hour!
let minutes = difference.minute!

或者,如果您想向用户显示此内容,您通常会使用 DateComponentsFormatter 来获得漂亮的本地化字符串表示形式:

let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full
formatter.allowedUnits = [.hour, .minute] // or [.minute]
let string = formatter.string(from: date1, to: date3)!

关于ios - 仅比较 Date 对象中的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40062131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com