swift 下 String 转 NSdate 相互转化,一些日期相关的总结

来源:互联网 发布:北京美食小熊网络 编辑:程序博客网 时间:2024/06/07 14:48

1.String 转化成 NSDate :

通常我在提交数据的时候时间格式都是14位,例如:"20161224191234", 为了开发方便,需要把字符串转化成 NSDate

let dateString = "20161224191234"

let formatter = NSDateFormatter()

formatter.dateFormat = "yyyyMMddHHmmss"

formatter.dateFromString(dateString)


这里的 dateFormat 格式要跟你自己的日期字符串格式一样, HH 为24小时制须大写,如不大写,上面转换出来结果为 nil.

2.NSDate 转化成 String

var normalTime:String{

    let formatter = NSDateFormatter()

    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

    return formatter.stringFromDate(NSDate())

}

这样结果就是2016-12-24 19:12:34的格式,格式由自己需求来定

3.由日期判断是星期几

        扩展 NSDate,写一个方法

extension NSDate{

    func resultWeek()->Int{

    let interval = self.timeIntervalSince1970

        let day = Int(interval/86400)

      return (day-3)%7

    }

}

上面的"20161224191234"判断一下是周几

let weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]

let week = weeks[formatter.dateFromString(dateString)!.resultWeek()] 结果是星期六

4.判断两个日期时间差

let firstDate = "2016-09-24"

let secondDate = "2016-12-24"

let cformatter = NSDateFormatter()

cformatter.dateFormat = "yyyy-MM-dd"

let sDate = cformatter.dateFromString(firstDate)

let cDate = cformatter.dateFromString(secondDate)

let intervals = cDate?.timeIntervalSinceDate(sDate!) //时间差(单位是秒)

let day_seconds = 24*3600//一天的秒数

let days = Int(intervals!)/day_seconds //结果就是两个日期的时间差(单位是天)



0 0
原创粉丝点击