当用户处于不同时区时,如何在Swift中使用日期/时间?
我有许多博客文章的发布日期设置为UTC时间。我想指出帖子的年龄(1小时、1天、1个月等),如何检测用户的时区,以便正确转换UTC日期/时间 谢谢 编辑: 我正在GitHub上使用DateHelper日期扩展:当用户处于不同时区时,如何在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(
让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"))
}