当用户处于不同时区时,如何在Swift中使用日期/时间?

当用户处于不同时区时,如何在Swift中使用日期/时间?,swift,Swift,我有许多博客文章的发布日期设置为UTC时间。我想指出帖子的年龄(1小时、1天、1个月等),如何检测用户的时区,以便正确转换UTC日期/时间 谢谢 编辑: 我正在GitHub上使用DateHelper日期扩展: 让sqlDate=post.age var hoursSincePost=sqlDate.hourssafterdate(Date()) hoursSincePost=abs(hoursSincePost) var daysSincePost=sqlDate.daysAfterDate(

我有许多博客文章的发布日期设置为UTC时间。我想指出帖子的年龄(1小时、1天、1个月等),如何检测用户的时区,以便正确转换UTC日期/时间

谢谢

编辑:

我正在GitHub上使用DateHelper日期扩展:

让sqlDate=post.age
var hoursSincePost=sqlDate.hourssafterdate(Date())
hoursSincePost=abs(hoursSincePost)
var daysSincePost=sqlDate.daysAfterDate(Date())
daysSincePost=abs(daysSincePost)
如果小时数成本<24{
age.text=字符串(hoursSincePost)+“小时前”
}否则,如果daysSincePost<7{
age.text=字符串(daysSincePost)+“天以前”
}否则{
age.text=sqlDate.toString(.custom(“MMM-dd-yyyy”))
}

您可以使用和获取用户的时区或特定时区。如果您不知道如何使用它们,下面是

您确定需要用户的时区吗?当然,可以根据UTC时间计算出职位的年龄。无论用户在哪里,1小时前都是1小时前。是的,因为我的应用程序当前显示的每个帖子都是5小时后的。我在东部时区,比格林威治标准时间(伦敦)晚5小时。请编辑您的问题,将您当前用于计算帖子年龄的代码包括在内。谢谢@robmayoff。添加了代码。@Mark_1。我完全明白你刚才说的。嗯。非常感谢。
let sqlDate = post.age
        var hoursSincePost = sqlDate.hoursAfterDate(Date())
        hoursSincePost = abs(hoursSincePost)

       var daysSincePost = sqlDate.daysAfterDate(Date())
        daysSincePost = abs(daysSincePost)
        if hoursSincePost < 24 {
            age.text = String(hoursSincePost) + " hours ago"
        } else if daysSincePost < 7 {
            age.text = String(daysSincePost) + " days ago"
        } else {
            age.text =  sqlDate.toString(.custom("MMM dd yyyy"))
        }