加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Swift中添加时间偏移

发布时间:2020-12-14 05:36:50 所属栏目:百科 来源:网络整理
导读:我在数据库中有一堆不同的展示次数,并希望通过创建一个偏移量来显示基于用户时区的正确时间. 我得到用户时区偏离GMT,并将其转换为数小时. NSTimeZone.localTimeZone().secondsFromGMT / 60 / 60 然后我需要找到一个方法来添加时间到日期对象..这是我/挣扎的
我在数据库中有一堆不同的展示次数,并希望通过创建一个偏移量来显示基于用户时区的正确时间.

我得到用户时区偏离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 GMT
guard let date = formatter.date(from: gmtTimeString) else {
    print("can't convert time string")
    return
}

formatter.timeZone = TimeZone.current                       // go back to user's timezone
let localTimeString = formatter.string(from: date)

或在Swift 2:

let formatter = NSDateFormatter()
formatter.dateFormat = "h:mm a"
formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0)  // original string in GMT
let date = formatter.dateFromString(gmtTimeString)

formatter.timeZone = NSTimeZone.localTimeZone()        // go back to user's timezone
let localTimeString = formatter.stringFromDate(date!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读