作者Gsus (肉元,吉米,助教)
看板MacDev
标题[问题] 有关NSDate以及UIDatePicker的配合
时间Mon Sep 27 02:50:40 2010
我在Server端有一个birthday字串 例如:2010-09-27 16:00
然後我在client抓回birthday字串後,先用NSDateFormatter转成NSDate
(ivar是birthdate)
我有一个UIDatePicker *datePicker;
我发现我要在[datePicker setDate:birhdate]时,datePicker会根据我在的区域
display时会帮我加上offset,例如我在台北,
datePicker.date会是 2010-09-27 16:00 没错
但是datePicker在萤幕上显示的却是2010-09-28 00:00
也就是因为台北是GMT+08:00,所以我的datePicker显示会帮我加8小时
(即使datePicker.date仍然是2010-09-27 16:00)
想请问这种状况我该如何解决呢
我是要自己手动找出offset
先把birthdate减去8小时,再设datePicker.date = birthdate;
然後之後有要用到datePicker.date时再把它加回8小时吗?
有没有其他比较好的方法呀....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.251.147.102
1F:→ Gsus:原来只要让datePicker.timeZone = [NSTimeZone timeZoneWith 09/27 08:51
2F:→ Gsus: WithName:@"GMT"];就解决了XDD 09/27 08:51
3F:→ zonble:老实说我觉得你的作法实在不好 09/27 16:14
4F:→ zonble:从 server 回传的时间没有 timezone,就是错误的第一步 09/27 16:15
5F:→ zonble:再来,如果要修正时区差异,应该是要确认 NSDate 物件里头 09/27 16:16
6F:→ zonble:本身的时区,NSDateFormatter 本身就有 timezone 可以设 09/27 16:17
7F:→ zonble:根据时区调整字串转出的 nsdate 物件 09/27 16:17
8F:→ zonble:你这样只改 datepicker,就只是改了某个显示的地方,但是 09/27 16:17
9F:→ zonble:日期资料本身的时区还是有问题 09/27 16:18
10F:→ zonble:资料有问题却只改显示的地方,那以後在别的地方要显示这个 09/27 16:18
11F:→ zonble:日期,都要这样搞一次,这样最後会变成无法维护 09/27 16:18
12F:→ Gsus:多谢指正~! 可是server端的部份不再我的控制范围内QQ 09/27 16:33