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)
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...