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

日期/时间Swift中的自然语言近似

发布时间:2020-12-14 05:35:47 所属栏目:百科 来源:网络整理
导读:我正在尝试使用 Swift将UTC格式化的日期从API转换为人造可读的近似格式. 我正在寻找类似如下的东西: 2015-07-14T13:51:05.423Z 至 About two weeks ago Swift最好的办法是什么?虽然最佳可能会直接格式化字符串,但我明白,这可能需要将字符串转换为NSDate对
我正在尝试使用 Swift将UTC格式化的日期从API转换为人造可读的近似格式.

我正在寻找类似如下的东西:

2015-07-14T13:51:05.423Z

About two weeks ago

Swift最好的办法是什么?虽然最佳可能会直接格式化字符串,但我明白,这可能需要将字符串转换为NSDate对象.

任何帮助将不胜感激.

编辑:我的问题已被确定为another question的可能重复.汤姆下面的解决方案是针对Swift撰写的,比为我的情况创建一种新方法更加优雅.

你需要两个步骤.首先,将日期字符串转换为NSDate:
let dateString = "2015-07-14T13:51:05.423Z"

let df = NSDateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date = df.dateFromString(dateString)

(如果这不是您获得的字符串的精确表示,则必须更改日期格式字符串以获得此转换).

接下来,使用NSDateComponentsFormatter获取所需的字符串:

let formatter = NSDateComponentsFormatter()
formatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Full
formatter.includesApproximationPhrase = true
formatter.includesTimeRemainingPhrase = false
formatter.allowedUnits = NSCalendarUnit.WeekOfMonthCalendarUnit

if let pastDate = date {
    let dateRelativeString = formatter.stringFromDate(pastDate,toDate: NSDate())
}

今天是7月28日,所以这个字符串的结果是“约2周”. allowedUnits属性是一个位字段,因此您可以指定尽可能多的单位类型.

(编辑:李大同)

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

    推荐文章
      热点阅读