zoukankan      html  css  js  c++  java
  • [Swift实际操作]七、常见概念-(6)日期Date和DateFormatter日期的格式化

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

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

    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

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

  • 相关阅读:
    匿名,排序,过滤,映射,递归函数
    内置函数图
    for(var i in items) 和 for(var i;i<items.length;i++) 区别
    js中var、let、const的区别 (待总结)
    eclipse拉取git项目 Read timed out after 30,000 ms
    eclispe git config配置文件配置远程仓库
    git pull出错:cannot pull into a repository with state: merging_resolved"
    HttpClient之用CloseableHttpClient发送post请求
    注意设置httpclient连接数
    This compilation unit is not on the build path of java project (此编译单元不在java项目的生成路径上)
  • 原文地址:https://www.cnblogs.com/strengthen/p/9759817.html
Copyright © 2011-2022 走看看