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

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

 time.timeZone = NSTimeZone.systemTimeZone()
 time.calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)

加了之后也没有什么作用,还是一样相差9个小时。后来有找到另外一种解决办法这样:

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

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

时间: 2024-10-07 20:29:17

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

用js通过url传参把数据从一个页面传到另一个页面

好长时间没写博客了,时值五一,外面到处人山人海,本宝宝还是好好呆在家学习吧.好了,言归正传.在没有后台支持的情况下,如何实现从一个页面像另一个页面来传递数据呢?应该很多人遇到过这个问题吧.那我就来说说我在项目中遇到的时候是如何解决的. 比如说,有两个页面,page1.html,和page2.html,在page1页面向page2页面传递数据可以通过hash值.上代码: page1.html的代码: 1 <!DOCTYPE html> 2 <html lang="en"

数据量大的数组格式,传到另一个页面被拆成散了

原始格式 var arr=[ {name:1111,age:2222,job:3333}, .....................................此处循环100遍 ]; 传到另个页面后变成这样 是因为数组变成字符串了, 想了个另类的解决办法eval() 被这个问题坑了很久....  最后也算是解决了,解决的方法并不好. 到现在还不知道为什么会这样..有大神看到的麻烦私信... 标签: json, ajax, KendoUi

美观的单张上传控件 一个页面可以实例化多个

首先需要引用 js 和css 1 <!--上传控件--> 2 <script src="query.form.min.js"></script> 3 <link href="Img_List.css" rel="stylesheet" /> 4 <script src="Img_List.js"></script> Img_List.js 如下: 1 //

java中获取日期和时间的方法总结

1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); date.getTime() ; 还有一种方式,使用 System.currentTimeMillis() ;都是得到一个当前的时间的long型的时间的毫秒值,这个值实际上是当前时间值与1970年一月一号零时零分零秒相差的毫秒数 一.获取当前时间,   格式为:   yyyy-mm-dd   hh-mm

在PHP中获取日期和时间

PHP提供了多种获取时间和日期的函数,除了通过time()函数获取当前的UNIX时间戳外,调用getdate()函数确定当前时间,通过gettimeofday()函数获取某一天中的具体时间.此外,在PHP中还可以通过date_sunrise()和date_sunset两个函数,获取某地点某天的日出和日落时间. ①调用getdate()函数取得日期/时间信息 getdate()函数返回一个时间戳组成的关键数组,参数需要一个可选的UNIX时间戳.如果没有给出时间戳,则认为是当前本地时间.总共返回11

java中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数

转换成秒数 Date类有一个getTime()可以换回秒数,例如: public class DateToSecond { public static void main(String[] args) { Date date = new Date(System.currentTimeMillis()); System.out.println(date.getTime()); } } 与字符串格式相互转换 一. 获取当前系统时间和日期并格式化输出: import java.util.Date; i

Delphi获取当前系统时间(使用API函数GetSystemTime)

在开发应用程序时往往需要获取当前系统时间.尽管Y2K似乎已经平安过去,但在我们新开发的应用程序中还是要谨慎处理“时间”问题. 在<融会贯通--Delphi4.0实战技巧>(以下简称“该书”)第89页专门介绍了两种获取当前系统时间的方法,但这两种方法都存在不足或错误,以下就此进行讨论. 该书第一种方法是利用Time()函数获得当前系统时间,返回结果是TDateTime结构类型的变量.例如: procedure TForm1.Button2Click(Sender: TObject); var D

fortran_date_and_time:获取日期和时间

fortran求时间最详细函数data_and_time(2013-03-20 14:13:28)   分类: 吃饭的工具 1.4.7.1 date_and_time:获取日期和时间 这是一个 2000 年安全的 Fortran 95 内例程. 子例程 date_and_time 返回实时时钟和日期的相关数据.返回数据包括本地时间以及本地时间与通用协调时间 (Universal Coordinated Time, UTC) 之间的时差,通用协调时间也称为格林威治标准时间 (Greenwich M

JAVA中获取当前系统时间

获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 System.out.println(df.forma