[问题] 时间字串转换时区

楼主: lisa090914 (好天氣,好心情~)   2018-10-30 00:58:53
大家好~
目前正在开发的功能是取用量测心跳的SDK (非apple 官方提供),其中一个function会回
传量测的时间,但是有时差+8hr的问题。
比如说:回传的时间是 10/29 15:00 (GMT+0),但实际上应该是10/29 23:00 (GMT+8)
因为技术问题无法改动原SDK,只好我自己再接收到回传值再做更改。
有Google过相关问题了,照着做却发现时间变成 10/29 07:00....
如图
https://i.imgur.com/UHDy9H0.jpg
后来看到这篇,发现会自动把input的时区默认为当前时区(GMT+8)
https://blog.csdn.net/shenjie_xsj/article/details/79033861
(可以直接看文章最下面的注解)
想请问有什么方法才能得到正确时区的时间呢?
谢谢各位解惑Orz
<更新>
刚刚发现把dateFormatter的时区改成UTC,得到的Date object显示的时间是对的,但我
要转成String就有变成15:00了,这里请问要怎么改呢?
https://i.imgur.com/5Byqm5P.jpg
作者: uranusjr (←這人是超級笨蛋)   2018-10-30 01:20:00
TimeZone(abbreviation: "UTC")不过我觉得你要去补充一点关于时区的知识比较好https://unix4lyfe.org/time/
作者: cryinglove (毓™)   2018-10-30 01:25:00
gmt+0 15:00 == gmt+8 23:00
作者: luckycan (罐头)   2018-10-30 02:35:00
Data本身print出来默认是+0的时间Date...Dateformatter本身会带出你所在的时区时间,即+8意思就是你给的字串时间他会认定是给+8的时间
作者: gundam00 (傻那驾驶中)   2018-10-30 02:41:00
https://i.imgur.com/hBKYhmr.png?1 看你要第一次校正或第二次校正的date
作者: cryinglove (毓™)   2018-10-30 08:12:00
作者: G888888   2018-10-30 09:26:00
之前也困扰著这个问题,但我在playground swift4.1好像就不用再转换了,直接当地的时间
作者: yuanruo (罪を憎んで人を憎まず)   2018-10-30 19:26:00
先把server回传字串转回date变+0 然后用calendar method的hour +timezone再转回字串

Links booklink

Contact Us: admin [ a t ] ucptt.com