Swift 3.0 Date的简单使用

Posted 玉思盈蝶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift 3.0 Date的简单使用相关的知识,希望对你有一定的参考价值。

//
//  ViewController.swift
//  Date的使用
//
//  Created by 思 彭 on 16/9/20.
//  Copyright © 2016年 思 彭. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    
        /// 1.获得当前的日期和时间: currnetDate = 2016-09-20 02:22:22 +0000
        let currentDate = Date()
        print("currnetDate = \(currentDate)")
        
        // 2.初始化DateFormatter类
        let dateFormatter = DateFormatter()
        dateFormatter.locale = Locale.current()
        
        // 3.date转string :带样式输出日期:  dateString =
        dateFormatter.dateStyle = DateFormatter.Style.noStyle
        let dateString = dateFormatter.string(from: currentDate)
        print("dateString = \(dateString)")
        
        // date1String = 9/20/16
        dateFormatter.dateStyle = DateFormatter.Style.shortStyle
        let date1String = dateFormatter.string(from: currentDate)
        print("date1String = \(date1String)")
        
        // date2String = Tuesday, September 20, 2016
        dateFormatter.dateStyle = DateFormatter.Style.fullStyle
        let date2String = dateFormatter.string(from: currentDate)
        print("date2String = \(date2String)")

        // date3String = September 20, 2016
        dateFormatter.dateStyle = DateFormatter.Style.longStyle
        let date3String = dateFormatter.string(from: currentDate)
        print("date3String = \(date3String)")

        // date4String = Sep 20, 2016
        dateFormatter.dateStyle = DateFormatter.Style.mediumStyle
        let date4String = dateFormatter.string(from: currentDate)
        print("date4String = \(date4String)")
        
        // 4.自定义输出格式  date5Str = Tuesday, September, 20, 2016
        dateFormatter.dateFormat = "EEEE, MMMM, dd, yyyy"
        let date5Str = dateFormatter.string(from: currentDate)
        print("date5Str = \(date5Str)")
        
        // 5. string转date  date = Optional(2016-12-02 10:15:59 +0000)

        let str = "2016-12-02 18:15:59"
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let date = dateFormatter.date(from: str)
        print("date = \(date!)")// 加上!  输出: date = 2016-12-02 10:15:59 +0000
        
        // 6.DateCopmonents的使用
        // era:1 year:2016 month:9 day: 20 hour:10 minute:53 second:  0
        let currentCalendar = Calendar.current()
        let dateComponents = currentCalendar.components([Calendar.Unit.era,Calendar.Unit.year,Calendar.Unit.month,Calendar.Unit.day,Calendar.Unit.hour,Calendar.Unit.second,Calendar.Unit.minute], from: currentDate)
        print("era:\(dateComponents.era!) year:\(dateComponents.year!) month:\(dateComponents.month!) day: \(dateComponents.day!) hour:\(dateComponents.hour!) minute:\(dateComponents.minute!) second:  \(dateComponents.second!)")
        
        // 7.DateComponents -> Date
        // compents = 2016-09-19 16:00:00 +0000
        var componrnts = DateComponents()
        componrnts.year = 2016
        componrnts.month = 09
        componrnts.day = 20
        let compents = currentCalendar.date(from: componrnts)
        print("compents = \(compents!)");
        
        // 8.比较日期和时间
        dateFormatter.dateFormat = "MMM dd, yyyy zzz"
        let str1 = "May 08, 2016 GMT"
        let date1 = dateFormatter.date(from: str1)
        let str2 = "May 10, 2016 GMT"
        let date2 = dateFormatter.date(from: str2)
        
        // date1:Optional(2016-05-08 00:00:00 +0000)----date2:Optional(2016-05-10 00:00:00 +0000)
        print("date1:\(date1)----date2:\(date2)")
        
        // 2016-05-08 00:00:00 +0000    2016-05-10 00:00:00 +0000
        print((date1! as NSDate).earlierDate(date2!));  //日期更早的NSDate对象
        print((date1! as NSDate).laterDate(date2!));  //日期更晚的NSDate对象

        if date1?.timeIntervalSinceReferenceDate > date2?.timeIntervalSinceReferenceDate {
            print("date1 is later")
        } else if date1?.timeIntervalSinceReferenceDate < date2?.timeIntervalSinceReferenceDate {
            print("date2 is later")
        } else if date1?.timeIntervalSinceReferenceDate == date2?.timeIntervalSinceReferenceDate {
            print("Same Date")
        }
        
        // 9. 日期的计算
        let monthsToAdd = 2
        let daysToAdd = 5
        
        var calculatedDate = currentCalendar.date(byAdding: Calendar.Unit.month, value: monthsToAdd, to:   currentDate, options: Calendar.Options.init(rawValue: 0))
        calculatedDate = currentCalendar.date(byAdding: Calendar.Unit.day, value: daysToAdd, to:   calculatedDate!, options: Calendar.Options.init(rawValue: 0))
        print(calculatedDate) // Optional(2016-10-24 08:33:41 +0000)
    }

 
   
    

}

 

以上是关于Swift 3.0 Date的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

从 Swift 3.0 转换为 Swift 2.3

使用 Swift 3.0 的 Alamofire 4 失败:错误域 = NSURLErrorDomain 代码 = -999 “已取消”

在swift 3.0中将坐标数组转换为geojson字符串

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

在 Xcode 8.0 Swift 3.0 上检测手势

如何使用 Swift 3.0 播放附加到图像数组的声音?