2017-02-14 116 views
3

我可以从GMT获得偏移秒数:TimeZone.current.secondsFromGMT()如何获得时区偏移为±hh:mm?

但是,如何获得格式为±hh:mm

+0

只需使用dateFormatter即可。 'dateFormatter.dateFormat =“xxxxx”' –

+1

[Convert Seconds Integer To HH:MM,iPhone](http://stackoverflow.com/questions/1739383/convert-seconds-integer-to-hhmm-iphone) – rmaddy

+0

@LeoDabus你不能用'DateFormatter'来实现这一点。没有'日期'。 – rmaddy

回答

7

一些整数运算,以获得在时间偏移和 分钟:

let seconds = TimeZone.current.secondsFromGMT() 

let hours = seconds/3600 
let minutes = abs(seconds/60) % 60 

格式化打印:

let tz = String(format: "%+.2d:%.2d", hours, minutes) 
print(tz) // "+01:00" 

%.2d打印与(至少)两个十进制数的整数(和领先 零如果需要的话)。 %+.2d是相同的,但带有标志的 非负数。

+0

如何从时区获得UTC偏移? –

+0

@Himanshujamnani:'TimeZone.current.secondsFromGMT()'是UTC偏移量。 –