gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:43 28 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/31516146/

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