Swift3.0设置微信朋友圈时间显示样式

来源:互联网 发布:mac rebel试色 编辑:程序博客网 时间:2024/04/29 11:27

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

Swift2.3://创建formatterlet formatter = NSDateFormatter()//设置时间格式formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy"//设置时间区域formatter.locale = NSLocale(localeIdentifier: "en")//转换为字符串let requestDate = formatter.dateFromString(requestDateString)Swift3.0:let requestDateString = "*************"let formatter = DateFormatter()formatter.dateFormat = "EEE MMM d HH:mm:ss z yyyy"formatter.locale = Locale.init(identifier: "en") as Locale!let requestDate = formatter.date(from: requestDateString)    print(getShowFormat(requestDate: Date.init(timeIntervalSinceNow: -555)))//输出:9分钟前

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

Swift2.3: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)}Swift3.0:func getShowFormat(requestDate:Date) -> String {    //获取当前时间    let calendar = Calendar.current    //判断是否是今天    if calendar.isDateInToday(requestDate as Date) {        //获取当前时间和系统时间的差距(单位是秒)        //强制转换为Int        let since = Int(Date().timeIntervalSince(requestDate as Date))        //  是否是刚刚        if since < 60 {            return "刚刚"        }        //  是否是多少分钟内        if since < 60 * 60 {            return "\(since/60)分钟前"        }        //  是否是多少小时内        return "\(since / (60 * 60))小时前"    }    //判断是否是昨天    var formatterString = " HH:mm"    if calendar.isDateInYesterday(requestDate as Date) {        formatterString = "昨天" + formatterString    } else {    //判断是否是一年内    formatterString = "MM-dd" + formatterString    //判断是否是更早期        let comps = calendar.dateComponents([Calendar.Component.year], from: requestDate, to: Date())       if comps.year! >= 1 {            formatterString = "yyyy-" + formatterString        }    }    //按照指定的格式将日期转换为字符串    //创建formatter    let formatter = DateFormatter()    //设置时间格式    formatter.dateFormat = formatterString    //设置时间区域    formatter.locale = NSLocale(localeIdentifier: "en") as Locale!    //格式化    return formatter.string(from: requestDate as Date)}
0 0
原创粉丝点击