我得到用户时区偏离GMT,并将其转换为数小时.
NSTimeZone.localTimeZone().secondsFromGMT / 60 / 60
然后我需要找到一个方法来添加时间到日期对象..这是我/挣扎的地方.
let formatter = NSDateFormatter() formatter.dateFormat = "HH:mm" let date = formatter.dateFromString(timeAsstring) println("date: \(date!)")
然后,我从标签中的日期创建一个字符串,以便使用AM / PM轻松阅读.
formatter.dateFormat = "H:mm" formatter.timeStyle = .ShortStyle let formattedDateString = formatter.stringFromDate(date!) println("formattedDateString: \(formattedDateString)")
我似乎找不到如何添加/减少时间.我已经将字符串分开,但有时会变为负数,并且不起作用.也许我会这样做错了.
感谢任何帮助.
基思
如果要将以GMT格式存储的显示时间转换为用户的本地时区,则不应手动调整NSDate / Date对象.您应该使用与格式化程序相应的时区.例如,在Swift 3中:let gmtTimeString = "5:00 PM"let formatter = DateFormatter()formatter.dateFormat = "h:mm a"formatter.timeZone = TimeZone(secondsFromGMT: 0) // original string in GMTguard let date = formatter.date(from: gmtTimeString) else { print("can't convert time string") return}formatter.timeZone = TimeZone.current // go back to user's timezonelet localTimeString = formatter.string(from: date)
或在Swift 2:
let formatter = NSDateFormatter()formatter.dateFormat = "h:mm a"formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) // original string in GMTlet date = formatter.dateFromString(gmtTimeString)formatter.timeZone = NSTimeZone.localTimeZone() // go back to user's timezonelet localTimeString = formatter.stringFromDate(date!)总结
以上是内存溢出为你收集整理的在Swift中添加时间偏移全部内容,希望文章能够帮你解决在Swift中添加时间偏移所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)