在Swift中添加时间偏移

在Swift中添加时间偏移,第1张

概述我在数据库中有一堆不同的展示次数,并希望通过创建一个偏移量来显示基于用户时区的正确时间. 我得到用户时区偏离GMT,并将其转换为数小时. NSTimeZone.localTimeZone().secondsFromGMT / 60 / 60 然后我需要找到一个方法来添加时间到日期对象..这是我/挣扎的地方. let formatter = NSDateFormatter() formatt 我在数据库中有一堆不同的展示次数,并希望通过创建一个偏移量来显示基于用户时区的正确时间.

我得到用户时区偏离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中添加时间偏移所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1040108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存