我从字符串生成一个 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)
Use NSCalendarComponents
:
let calendar = NSCalendar.currentCalendar()
let newDate = calendar.dateByAddingUnit(
.CalendarUnitHour, // adding hours
value: 2, // adding two hours
toDate: oldDate,
options: .allZeros
)
Using NSCalendar
将考虑闰秒、闰时等因素。
But as 邓肯·C 的回答指出,简单地增加时间绝对是错误的做法。两个时区并不总是相距相同的时间。同样,当我们考虑到夏令时时,这一点尤其正确。 (例如,美国的夏令时开始/结束时间与欧洲不同,亚利桑那州甚至没有do夏令时)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)