swift日期操作

简介:本文将介绍一些关于swift中对于日期的格式化与获取,支持swift4.0

复制代码
 1 extension Date {
 2     
 3     //格式化日期
 4     func getDateString() -> String{
 5         let  dateFormater = DateFormatter.init()
 6         //EEEE:星期几
 7         //YYYY:年份
 8         //MM:月份
 9         //dd:几号
10         //HH:小时
11         //mm:分钟
12         //ss:秒
13         //zzz:时区号
14         
15         dateFormater.dateFormat = "EEEE-YYYY-MM-dd HH:mm:ss:zzz"
16         let dateStr = dateFormater.string(from: self)
17         
18         return dateStr
19     }
20     
21     //获取某个日期为星期几
22     func getDateWeekday() ->String{
23         let weekdaysTitleArr = ["周日","周一","周二","周三","周四","周五","周六"]
24         let timeInterval:TimeInterval = self.timeIntervalSince1970
25         let days = Int(timeInterval/86400)
26         let weekday = ((days + 4)%7+7)%7
27         return weekdaysTitleArr[weekday]
28     }
29     
30     //将日期转换为时间戳(10位)
31     func getTimeStamp() -> Int{
32         let timeInterval:TimeInterval = self.timeIntervalSince1970
33         let timeStamp = Int(timeInterval)
34         return timeStamp
35     }
36 }
复制代码
复制代码
 1 class Utility: NSObject {
 2 
 3     //根据时间戳获取时间字符串
 4     class func getDateStringFromTimestamp(_ timestamp:Int64) ->String{
 5         let timeInterval:TimeInterval = TimeInterval(timestamp)
 6         let date = Date(timeIntervalSince1970: timeInterval)
 7         return date.getDateString()
 8     }
 9     
10     //根据时间戳获取日期对象
11     class func getDateFromTimestamp(_ timestamp:Int64) ->Date{
12         let timeInterval:TimeInterval = TimeInterval(timestamp)
13         let date = Date(timeIntervalSince1970: timeInterval)
14         return date
15     }
16     
17     //获取两个日期的间隔天数
18     class func getDateInterval(dateA:Date,dateB:Date) ->Int{
19         let interval = dateA.timeIntervalSince(dateB)
20         let days = Int(interval/(24*60*60))
21 //        let hours = Int(interval/(60*60))
22 //        let mins = Int(interval/60)
23         return days
24     }
25 }
复制代码

最后就是方法的调用与后台的输出

复制代码
1         let date = Date()
2         print(date.getDateString())
3         print(date.getDateWeekday())
4         print(date.getTimeStamp())
5         
6         let dateA = Utility.getDateFromTimestamp(1507605071)
7         let dateB = Utility.getDateFromTimestamp(1507877163)
8         let days = Utility.getDateInterval(dateA: dateA, dateB: dateB)
9         print(days)    
复制代码

PS:   http://tool.chinaz.com/Tools/unixtime.aspx   这个网址可以在线转换时间戳

posted @   艾达  阅读(1760)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示