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) @H_404_24@-> String {

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

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

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

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

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

猜你在找的Swift相关文章