Swift设置微信朋友圈时间显示样式

前端之家收集整理的这篇文章主要介绍了Swift设置微信朋友圈时间显示样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

把请求下来的时间字符串(requestDateString)转换为NSDate

//创建formatter
let formatter = NSDateFormatter()
//设置时间格式
formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy"
//设置时间区域
formatter.locale = NSLocale(localeIdentifier: "en")
//转换为字符串
let requestDate = formatter.dateFromString(requestDateString)

把转换好的NSDate转换成要显示的形式

func getShowFormat(requestDate:NSDate) -> String {

    //获取当前时间
    let calendar = NSCalendar.currentCalendar()
    //判断是否是今天
    if calendar.isDateInToday(requestDate) {
        //获取当前时间和系统时间的差距(单位是秒)
        //强制转换为Int
        let since = Int(NSDate().timeIntervalSinceDate(requestDate))
        // 是否是刚刚
        if since < 60 {
            return "刚刚"
        }
        // 是否是多少分钟内
        if since < 60 * 60 {
            return "\(since/60)分钟前"
        }
        // 是否是多少小时内
        return "\(since / (60 * 60))小时前"
    }

    //判断是否是昨天
    var formatterString = "HH:mm"
    if calendar.isDateInYesterday(requestDate) {
        formatterString = "昨天" + formatterString
    } else {
        //判断是否是一年内
        formatterString = "MM-dd" + formatterString
        //判断是否是更早期
        let comps = calendar.components(NSCalendarUnit.Year,fromDate: requestDate,toDate: NSDate(),options: NSCalendarOptions(rawValue: 0))

        if comps.year >= 1 {
            formatterString = "yyyy-" + formatterString
        }
    }

    //按照指定的格式将日期转换为字符串
    //创建formatter
    let formatter = NSDateFormatter()
    //设置时间格式
    formatter.dateFormat = formatterString
    //设置时间区域
    formatter.locale = NSLocale(localeIdentifier: "en")

    //格式化
    return formatter.stringFromDate(requestDate)
}

猜你在找的Swift相关文章