swift基础--时间转换相关

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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容