gpt4 book ai didi

swift3 - 用给定的数字约会

转载 作者:行者123 更新时间:2023-12-04 05:46:25 25 4
gpt4 key购买 nike

我有以下 Swift (Swift 3) 函数来使用日期组件 ( Date ) 创建日期 ( DateComponents )。

func makeDate(year: Int, month: Int, day: Int, hr: Int, min: Int, sec: Int) -> NSDate {
let calendar = NSCalendar(calendarIdentifier: .gregorian)!
let components = NSDateComponents()
components.year = year
components.month = month
components.day = day
components.hour = hr
components.minute = min
components.second = sec
let date = calendar.date(from: components as DateComponents)
return date! as NSDate
}

如果我使用它,它将返回 GMT 日期。
override func viewDidLoad() {
super.viewDidLoad()
let d = makeDate(year: 2017, month: 1, day: 8, hr: 22, min: 16, sec: 50)
print(d) // 2017-01-08 13:16:50 +0000
}

我真正想要返回的是基于这些数字的日期 (2017-01-08 22:16:50)。我怎么能用 DateComponents 做到这一点?谢谢。

最佳答案

该函数确实返回正确的日期。这是print以 UTC 格式显示日期的函数。

顺便说一句,本地 您的函数的 Swift 3 版本是

func makeDate(year: Int, month: Int, day: Int, hr: Int, min: Int, sec: Int) -> Date {
var calendar = Calendar(identifier: .gregorian)
// calendar.timeZone = TimeZone(secondsFromGMT: 0)!
let components = DateComponents(year: year, month: month, day: day, hour: hr, minute: min, second: sec)
return calendar.date(from: components)!
}

但是,如果您真的想要 UTC 日期,请取消注释该行以设置时区。

关于swift3 - 用给定的数字约会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41533807/

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