[Swift实际操作]七、常见概念,6日期Date和DateFormatter日期的格式化

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

本文将为你演示日期类型的使用,以及如何对日期进行格式化。

首先引入需要使用到的界面框架

import UIKit

初始化一个日期对象,它的值和当前电脑中的日期相同

var date = Date()

获得当前60分钟之后的时间

date.addTimeInterval(60 * 60)

获得当前60分钟之后的时间,并存储在一个常量之中。

let sencondDate = date.addTimeInterval(60 * 60)

对两个时间进行比较,当时间小于进行比较的时间时,返回值为-1。

比较的结果为枚举类型,和字符串的比较相同,

枚举成员的值包含:-1、0和1。

rawValue:原始值

date.compare(date.addTimeInterval(60 * 60)).rawValue

当两个时间相等时,返回的原始值为0

date.compare(date.addTimeInterval(0)).rawValue

当时间大于进行比较的时间时,返回的原始值为1

date.compare(date.addTimeInterval(-60 * 60)).rawValue

获得当前时间的字符串形式

date.description

获得两个时间之间的差值,单位为秒。

date.timeIntervalSince(secondDate)

获得从1970年1月1日0点开始,经过多少秒可以到达指定的时间

date.timeIntervalSince1970

获得指定日期和当前时间之间的差值

date.timeIntervalSinceNow

接着我们将对日期进行格式化,首先初始化一个日期格式化类的实例

let dtFormatter = DateFormatter()

设置日期格式化对象的本地属性

dtFormatter.locale = Locale.current

设置日期的格式为全格式,即包含年、月、日星期等各种信息

dtFormatter.dateStyle = DateFormatter.Style.full

对日期进行格式化,然后点击显示结果图标,查看日期格式化后的结果。

dtFormatter.string(from: date)

查看日期格式化后日期样式,然后再次点击结果图标,隐藏该结果。

使用长类型对日期进行格式化,然后点击显示结果图标,查看日期格式化后的结果。

1 dtFormatter.dateStyley = DateFormatter.Style.long
2 dtFormatter.string(from: date)

查看日期格式化后日期样式,然后再次点击结果图标,隐藏该结果。

接着继续联系其他的日期格式化样式。

使用中间样式对日期进行格式化,并查看右侧输出的结果。

1 dtFormatter.dateStyley = DateFormatter.Style.medium
2 dtFormatter.string(from: date)

使用短样式对日期进行格式化,并查看右侧输出的结果。

1 dtFormatter.dateStyley = DateFormatter.Style.short
2 dtFormatter.string(from: date)

使用自定义的日期样式,对日期进行格式化,并观察右侧输出的结果。

注意小时数为12小时进制。

1 dtFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
2 dtFormatter.string(from: date)

将小写的h修改为大写的H,之后再次对日期进行格式化,并观察右侧输出的结果,

此时显示为24小时进制

1 dtFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
2 dtFormatter.string(from: date)

使用自定义的日期样式,对日期进行格式化,只显示日期的年、月、日信息。

1 dtFormatter.dateFormat = "yyyy-MM-dd"
2 dtFormatter.string(from: date)

使用自定义的日期样式,对日期进行格式化,注意只使用一个M表示月份,

此时的月份将使用简化的样式,不会对小于10的数字进行补0

1 dtFormatter.dateFormat = "yyyy-M-dd"
2 dtFormatter.string(from: date)

我们同样可以将字符串转换为日期,首先定义一个包含日期信息的字符串。

let dateString = "2018-10-10 12:00:00"

设置日期格式化对象的日期和时间格式。

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

然后通过日期格式化对象,将字符串转换为日期对象,

从而实现了从字符串向日期进行转换的功能

let newDate = dtFormatter.date(from: dateString)

如果需要比较两个日期的先后,可以先获得两个日期和固定参考日期的距离,

然后再对距离进行比较即可。

(newDate?.timeIntervalSinceReferenceDate) !> date.timeIntervalSinceReferenceDate

技巧:如果您需要注册公司版的苹果开发账号,请尽早申请邓白氏码,这个申请比较花费时间。