swift_将UIDatePicker获取到的时间传到下一个页面出现相差几个小时的问题

今天,在写swift demo的时候遇到了一个很奇葩的问题,我再 present 出来的页面中利用 UIDatePicker 选取时间,然后再将获取到的时间传回原来的主界面,结果问题出现了:B页面获取时间正常,传回A页面后时间少了8个小时。百思不得其解,Google找了一些答案说是要这样:

 time.timeZone = NSTimeZone.systemTimeZone()
 time.calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
加了之后也没有什么作用,还是一样相差8小时。后来有找到另外一种解决办法这样:

let timeZone = NSTimeZone.systemTimeZone()
let seconds = timeZone.secondsFromGMTForDate(addObject.time.date)
let correctDate = addObject.time.date.dateByAddingTimeInterval(Double(seconds))

虽然说问题解决了,但是还是有点不明白为什么会出现这样的情况,难道是 XCode GM版的原因(不太可能啊~)。希望知道啥原因的童鞋不吝赐教,共同进步!

//------------2014.09.20 修改--------------------

今天装了XCode 6.0.1正式版,从B页面传datePicker.date 到 A页面已经不会出现少了8个小时的问题了。但是打印出来的时间却是和debug看到的时间不一样,一样相隔8个小时,debug 看到的是 CST时间,而打印出来时间可能是不是CST时间,应该是时区问题造成的,目前还不知道如何让打印出来的时间跟系统显示的时间相一致。

参考资料:IOS-NSDate 相差8个小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值