[Swift4.2互动教程]七、常见概念-(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

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

原文地址:https://www.cnblogs.com/strengthen/p/9759817.html

时间: 2024-11-08 21:54:10

[Swift4.2互动教程]七、常见概念-(6)日期Date和DateFormatter日期的格式化的相关文章

[Swift4.2互动教程]七、常见概念 - (2)点CGPoint和变形CGAffineTransform的使用

本文将为你演示点对象CGPoint的使用,其中CG表示来自CoreGraphic(核心图形)这个跨平台框架 首先导入需要使用的两个框架第一个框架表示界面工具框架第二个框架表示核心绘图和动画框架 1 import UIKit 2 import QuartzCore 定义一个点对象,并设置它的位置为原点.从右侧的结果可以看出,原点的x和y值都是0 let zeroPoint = CGPoint.zero 初始化另一个点对象 var point = CGPoint() 接着查看点对象的坐标值,从右侧的

[Swift4.2互动教程]七、常见概念 - (3)尺寸CGSize的使用详解

本文将为你演示CGSize的使用 首先导入需要使用到的两个框架 1 import UIKit 2 import QuartzCore 定义一个尺寸对象,尺寸对象包含宽度和和高度两个参数.从右侧的结果可以看出,此时该尺寸对象的宽度和高度都是0 let zeroSize = CGSize.zero 初始化另一个尺寸对象,并设置它的宽度为20,高度为10 let size = CGSize(width: 20, height: 10) 查看该尺寸对象的高度和宽度的数值 1 size.width 2 s

[Swift4.2互动教程]七、常见概念-(10)使用UserDefaults和归档方式存取用户数据

在项目开发之中,你会经常需要将一些数据存储在本地,以便记录用户生产的数据或操作习惯.在项目文件夹上带点击鼠标右键.弹出右键菜单.本文将为你演示,存储用户数据的两种常用方式. 选择菜单中的创建新文件选项(New File),创建一个类文件,用来存档用户数据.在弹出的文件模板选择窗口中,保持默认的选项(Cocoa Touch Class),然后点击下一步按钮,进入下一步设置页面.在类名输入框内输入类的名称. Class: Person 接着输入父类的名称. Subclass of: NSObject

[Swift4.2互动教程]七、常见概念-(12)使用DispatchGroup(调度组)管理线程数组

本文将为你演示调度组的使用,使用调度组可以将多个线程中的人物进行组合管理,可以设置当多个相同层次的任务完成之后,再执行另一项任务. 首先导入需要使用的界面工具框架 import UIKit 在控制台输出一条日志语句,表示调试任务开始执行 print("Start the task and display teh Loading animation.") 接着初始化一个调度组对象. let gro =DispatchGroup() 同时运行多个任务,每个任务的启动时间是按照加入队列的顺序

[Swift4.2互动教程]七、常见概念-(13)使用UIScreen查询设备屏幕信息

本文将为你演示,如何获得设备的屏幕信息,了解设备的屏幕尺寸等信息,才能做出适配性更好的应用程序. 首先导入需要使用到的界面工具框架 import UIKit 然后通过UIScreen类,就可以获得设备的屏幕信息.这里获得设备的屏幕尺寸,点击显示结果图标,查看获得的结果 UIScreen.main.availableModes.description 从结果列表中可以看出,屏幕的宽度为2048像素,高度为1536像素.再次点击结果图标,关闭结果列表. [<UIScreenMode: ox60000

[Swift4.2互动教程]八、实用进阶-(6)通过属性进行对象间的消息传递

本文将演示,如何通过一个对象作为另一个对象的属性,从而通过设置属性的值,来实现对象之间的消息传递.首先打开自定义视图的代码文件(CustomView.swift) 1 import UIKit 2 //使当前的自定义类,遵循文本输入框代理协议 3 class CustomView: UIView,UITextFieldDelegate{ 4 //给自定义类添加一个文本框类型的属性 5 var textField: UITextField! 6 //添加一个视图控制器类的属性,并设置类型为弱引用,

《互动教程 for Photoshop CC》已成功发布在App Store

不看视频不看书,超级好玩的PS教程! App store下载量超百万! 超千份来自世界各地用户的五星好评以及诚意推荐! 单击.双击.长按.拖动及各种快捷键,就像您在真正的Photoshop上操作一样! 比观看视频.阅读书籍更加有效.有趣! 指尖点亮设计之源!哪里不会戳哪里,妈妈再也不会担心我的Ps了! 一起动手来戳Photoshop吧! App Store免费下载地址: https://itunes.apple.com/cn/app/hu-dong-jiao-cheng-for-photosho

Laravel教程 七:表单验证 Validation

Laravel教程 七:表单验证 Validation 此文章为原创文章,未经同意,禁止转载. Laravel Form 终于要更新这个Laravel系列教程的第七篇了,期间去写了一点其他的东西. 就不 说废话了吧,直接进入Form Validation的部分吧.几乎在每一个web应用当中都会有表单,而有表单基本就离不开表单验证.在laravel中,其实可以说是有两种方式来进行表单验证:使用Request和使用Validation.下面将分开讲这两部分的内容,而且我会更着重第一种,也更推荐大家使

《互动教程 for Excel 2016》已成功发布在App Store

不看视频不看书,超级好玩的Excel教程! 单击.双击.长按.拖动及各种快捷键,就像您在真正的Excel 2016上操作一样! 比观看视频.阅读书籍更加有效.有趣! 哪里不会戳哪里,妈妈再也不会担心我的Excel了! 免费下载地址: https://itunes.apple.com/cn/app/hu-dong-jiao-cheng-for-excel/id1090726089?mt=8 [关于Excel互动教程] 1.Excel互动教程是一款简单.有趣.互动式的学习Office Excel 2