gpt4 book ai didi

ios - SWIFT:如何向 NSDate 对象添加小时数

转载 作者:行者123 更新时间:2023-11-30 12:32:10 25 4
gpt4 key购买 nike

我从字符串生成一个 NSDate 对象。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(abbreviation: "GMT")
let stringToDate = dateFormatter.dateFromString(dateFromService) // 2015-07-20 12:00:43 +0000

我从网络服务器获取这个字符串值。我需要修改个人设备时区。想要向此 stringToDate 对象添加小时数但不起作用

var addHours : Int = 2 // 2 hours will be added
var newDate = stringToDate.dateByAddingTimeInterval(addHours)

最佳答案

使用NSCalendarComponents:

let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(
.CalendarUnitHour, // adding hours
value: 2, // adding two hours
toDate: oldDate,
options: .allZeros
)

使用 NSCalendar 将考虑闰秒、闰时等内容。

但如Duncan C's answer指出,简单地增加时间绝对是错误的做法。两个时区并不总是相距相同的时间。同样,当我们考虑到夏令时时,这一点尤其正确。 (例如,美国的夏令时开始/结束日期与欧洲不同,亚利桑那州甚至不实行夏令时)。

关于ios - SWIFT:如何向 NSDate 对象添加小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376432/

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