gpt4 book ai didi

swift - 如何在 Swift 中更改当天的小时和分钟?

转载 作者:IT王子 更新时间:2023-10-29 05:03:51 24 4
gpt4 key购买 nike

如果我创建一个 Date() 来获取当前日期和时间,我想从中创建一个新日期但具有不同的小时、分钟和零秒,最简单的方法是什么用 swift 做吗?我一直在寻找很多使用“获取”而非“设置”的示例。

最佳答案

请注意,对于使用夏令时的区域设置,在时钟更改日,某些时间可能不存在或可能出现两次。下面的两种解决方案都返回一个 Date? 并使用强制展开。您应该在您的应用中处理可能的 nil

Swift 3、4、5 和 iOS 8/OS X 10.9 或更高版本

let date = Calendar.current.date(bySettingHour: 9, minute: 30, second: 0, of: Date())!

swift 2

使用 NSDateComponents/DateComponents:

let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let now = NSDate()
let components = gregorian.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: now)

// Change the time to 9:30:00 in your locale
components.hour = 9
components.minute = 30
components.second = 0

let date = gregorian.dateFromComponents(components)!

请注意,如果您调用 print(date),打印的时间为 UTC。这是同一时刻,只是在与您不同的时区中表示。使用 NSDateFormatter 将其转换为本地时间。

关于swift - 如何在 Swift 中更改当天的小时和分钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36073704/

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