本文将演示日期和时间类型的扩展方法。
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, ‘12.0’ 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 7 pod 'AFDateHelper', '~> 4.2.2' 8 end
根据配置文件中的相关配置,安装第三方库。
然后点击打开【DemoApp.xcworkspace】项目文件。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,调用第三方库对日期和时间的扩展方法。
1 import UIKit 2 //在当前的类文件中,引入已经安装的第三方类库 3 import AFDateHelper 4 5 class ViewController: UIViewController { 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 11 //将一个字符串初始化为数组,并指定日期的格式。 12 var date = Date(fromString: "16 July 1972 6:12:00", format: .custom("dd MMM yyyy HH:mm:ss")) 13 //在控制台输出初始化的日期对象 14 print(date!.toString()) 15 16 //在对日期进行初始化时,第三方类库提供了五种日期格式。 17 //用点格式对日期进行格式化。 18 date = Date(fromString: "/Date(1260123281843)/", format: .dotNet) 19 //在控制台输出初始化的日期对象 20 print(date?.toString()) 21 22 //日期类型的明天方法 23 print(Date.tomorrow().toString()) 24 //日期类型的昨天方法 25 print(Date.yesterday().toString()) 26 27 let now = Date() 28 //判断一个日期,在忽略时间的前提下,是否和另一个日期相等。 29 print("now.isSameDay:\(now.compare(.isSameDay(as: date)))") 30 //判断是否为今天 31 print("date.isToday:\(date.compare(.isToday))") 32 //判断是否为明天 33 print("date.isTomorrow:\(date.compare(.isTomorrow))") 34 //判断是否为昨天 35 print("date.isYesterday:\(date.compare(.isYesterday))") 36 //判断是否为同一周 37 print("date.isSameWeek:\(date.compare(.isSameWeek(as: now)))") 38 //判断是否为同一个月份 39 print("date.isSameMonth:\(date.compare(.isSameMonth(as: now)))") 40 //判断是否为同一个年份 41 print("date.isSameYear:\(date.compare(.isSameYear(as: now)))") 42 //判断是否在本周 43 print("date.isYesterday:\(date.compare(.isWeek))") 44 //判断是否在下周 45 print("date.isNextWeek:\(date.compare(.isNextWeek))") 46 //判断是否在上周 47 print("date.isLastWeek:\(date.compare(.isLastWeek))") 48 //判断是否在明年 49 print("date.isNextYear:\(date.compare(.isNextYear))") 50 //判断是否在去年 51 print("date.isLastYear:\(date.compare(.isLastYear))") 52 53 //判断该日期在日期之后的秒数 54 print("date.secondsAfterDate:\(date.since(now, in: .second))") 55 //判断该日期在日期之前的秒数 56 print("date.secondsAfterDate:\(now.since(date, in: .second))") 57 //判断该日期在日期之后的分钟数 58 print("date.minutesAfterDate:\(date.since(now, in: .minute))") 59 //判断该日期在日期之前的分钟数 60 print("date.minutesAfterDate:\(now.since(date, in: .minute))") 61 //判断该日期在日期之后的小时数 62 print("date.hoursAfterDate:\(date.since(now, in: .hour))") 63 //判断该日期在日期之前的小时数 64 print("date.hoursAfterDate:\(now.since(date, in: .hour))") 65 //判断该日期在日期之后的天数 66 print("date.daysAfterDate:\(date.since(now, in: .day))") 67 //判断该日期在日期之前的天数 68 print("date.daysAfterDate:\(now.since(date, in: .day))") 69 70 //判断该日期在日期距离最近的小时数 71 print("date.nearestHour:\(date.dateFor(.nearestHour(hour: 1)))") 72 //获得该日期的年份 73 print("date.year:\(String(describing: date.component(.year)))") 74 //获得该日期的月份 75 print("date.year:\(String(describing: date.component(.month)))") 76 //获得该日期的天数 77 print("date.day:\(String(describing: date.component(.day)))") 78 //获得该日期的小时数 79 print("date.hour:\(String(describing: date.component(.hour)))") 80 //获得该日期的分钟数 81 print("date.minute:\(String(describing: date.component(.minute)))") 82 //获得该日期的秒数 83 print("date.second:\(String(describing: date.component(.second)))") 84 //获得该日期的星期数 85 print("date.weekday:\(String(describing: date.component(.weekday)))") 86 //获得该日期在一个月中的第几个星期数 87 print("date.nthWeekday:\(String(describing: date.component(.nthWeekday)))") 88 89 //获得该日期在一个月中的天数 90 print("date.firstDayOfWeek:\(date.firstDayOfWeek())") 91 //获得星期中的第一天 92 print("date.lastDayOfWeek:\(date.lastDayOfWeek())") 93 //获得星期中的最后一天 94 print("date.numberOfDaysInMonth:\(date.numberOfDaysInMonth())") 95 96 //获得日期所在月份的总的天数 97 print("custom:\(date.toString(format: .custom("dd MMM yyyy HH:mm:ss")))") 98 //将日期按照自定义的格式转换为字符串 99 print("custom:\(date.toString(format: .isoYearMonth))") 100 } 101 }