美文网首页
swift基础--时间转换相关

swift基础--时间转换相关

作者: 111ZZzz | 来源:发表于2019-02-21 14:12 被阅读0次

    1.获取当前日期和周几

            let today:Date = Date()

            let myDateFormatter:DateFormatter = DateFormatter()

            myDateFormatter.dateFormat = "yyyy-MM-dd"

            var dateString:String = ""

            dateString = myDateFormatter.string(from: today.addingTimeInterval(0))

            let interval = NSDate().timeIntervalSince1970

            let day = Int(interval/(24*60*60))

            var weekDay:String = ""

            weekDay =  String ((day+4)%7 == 0 ? 7 : (day+4)%7)

            switch weekDay {

            case "7":

                weekDay = "周日"

            case "1":

                weekDay = "周一"

            case "2":

                weekDay = "周二"

            case "3":

                weekDay = "周三"

            case "4":

                weekDay = "周四"

            case "5":

                weekDay = "周五"

            default:

                weekDay = "周六"

            }

    2.根据时间戳推出天数和月份,当前周等

            //获取当前时间戳

                    let  firstDate = Date().timeIntervalSince1970

                    print(firstDate)

                    //根据时间戳推出后5天

                    for i in 0 ..<5{

                        let day = timeStamp + Int(i * (60 * 60 * 24))

                        let da = Date(timeIntervalSince1970 : TimeInterval(day))

                        let compoent = Calendar.current.dateComponents(in: TimeZone.current, from: da)

                        print(compoent.day)

                        print(compoent.month)

                    }

    3.根据日期字符转换时间,timeStr: 日期字符串,如2017/09/04 12:40:26

        class func getTimeDescriptionByTimeStr(timeStr:String,split:String = "/") -> String {

            //先转换时间戳

            let formater = DateFormatter()

            formater.dateFormat = "yyyy\(split)MM\(split)dd HH:mm:ss"

            if let dd = formater.date(from: timeStr){

                let timeInt = Int64(dd.timeIntervalSince1970)

                return K12DateUtils.getTimeDescription(timeStamp:timeInt.description)

            }

            return timeStr

        }

    4.时间戳转换时间描述

        - parameter timeStamp: 时间戳字符串

        - returns: 描述字符串 : 如“刚刚”、“5分钟前”。。。

    class func getTimeDescription(timeStamp:String?) -> String {

            if timeStamp == nil || (timeStamp?.isEmpty)!{

                return ""

            }

            //获取参数的时间戳

            guard let _time = Int64(timeStamp!) else {

                return ""

            }

            //获取当前时间戳

            let _now_time = Int64(Date().timeIntervalSince1970)

            //是否在现在之后,若是则返回空

            if _now_time < _time {

                return ""

            }

            //计算时间差, 按时间差返回字符串

            var showTime = ""

            //得到间隔,单位:秒

            let _interval = _now_time - _time

            if (_interval < 10) {

                showTime = "刚刚"

            } else if (_interval < 60) {

                showTime = String(_interval) + "秒前"

            } else if (_interval < 60 * 60) {

                showTime = String(_interval / 60) + "分钟前"

            } else if (_interval < 60 * 60 * 24) {

                showTime = String(_interval / (60*60)) + "小时前"

            }else if (_interval < 60 * 60 * 24 * 7) {

                //7天以内,用 “几天前”显示

                let tian = Int(_interval/(60 * 60 * 24))

                showTime = String(tian) + "天前"

            } else {

                let _date = Date(timeIntervalSince1970: Double(_time))

                let _dateFormatter = DateFormatter()

                _dateFormatter.dateFormat = "yyyy-MM-dd"

                showTime = _dateFormatter.string(from: _date as Date)

            }

            return showTime

        }

    5.时间戳转时间

            //时间戳

            let timeStamp =1463241600

            //转换为时间

            let timeInterval:NSTimeInterval =NSTimeInterval(timeStamp)

            let date = NSDate(timeIntervalSince1970: timeInterval)

            let dateformatter = NSDateFormatter()

            dateformatter.dateFormat ="yyyy年MM月dd日 HH:mm:ss" //自定义日期格式

            let time = dateformatter.stringFromDate(date)

            print("对应时间:"+time)

    相关文章

      网友评论

          本文标题:swift基础--时间转换相关

          本文链接:https://www.haomeiwen.com/subject/dztzpttx.html