sqlserver的日期格式比较_SwiftDate - Swift处理日期的最佳选择

想要解析、验证、操作和显示日期,在 Swift 中,你的最佳选择是 SwiftDate。无论是最为简单的日期操作,还是复杂的业务逻辑,SwiftDate 都会是你下一个 Swift 项目的合适选择。

07a778e9f78b4d29b38fe3c437057595

Swift

简介

SwiftDate,是 malcommac 在 Github 上开源的Swift语言日期库,项目位于 https://github.com/malcommac/SwiftDate,目前版本为 v6.1.0。SwiftDate 用于操控和显示日期和时区,可以在全苹果平台上,甚至在Linux和Swift的服务端框架中使用。SwiftDate 功能丰富,包括了支持多种格式的日期解析多达140种语言的日期格式化,时间单位操作,超过20中的日期判断和比较方式,随机日期生成等等,且接口简单,使用方便,一个库就能满足日期方面的所有需求。

4a6a0d05cd4942058bc1245d6706b812

SwiftDate日期库

安装

SwiftDate 可以使用 CocoaPods 在 Cocoa 项目中进行安装,需要 CocoaPods 1.1+:

gem install cocoapods

也可以使用 carthage 来进行依赖定义,在 Cartfile 中添加:

github "malcommac/SwiftDate" ~> 6.0

还可以使用 Swift 包管理工具安装,在 Package.swift 中添加:

dependencies: [.package(url: "https://github.com/malcommac/SwiftDate.git", from: "5.0.0")]

示例

SwiftDate 功能众多,它可以对多种形式的日期字符串进行解析:

// 15+种默认格式let _ = "2010-05-20 15:30:00".toDate()// 自定义格式let _ = "2010-05-20 15:30".toDate("yyyy-MM-dd HH:mm")// All ISO8601变种let _ = "2017-09-17T11:59:29+02:00".toISODate()// RSS, Extended, HTTP, SQL, .NET等let _ = "19 Nov 2015 22:20:40 +0100".toRSS(alt: true)

也可以对日期进行操作,包括日期的加减等:

// All default datetime formats (15+) are recognized automaticallylet _ = "2010-05-20 15:30:00".toDate()// You can also provide your own format!let _ = "2010-05-20 15:30".toDate("yyyy-MM-dd HH:mm")// All ISO8601 variants are supported too with timezone parsing!let _ = "2017-09-17T11:59:29+02:00".toISODate()// RSS, Extended, HTTP, SQL, .NET and all the major variants are supported!let _ = "19 Nov 2015 22:20:40 +0100".toRSS(alt: true)

也能够进行日期的判断和比较,内置了许多方便的方法:

let _ = dateA >= dateB || dateC < dateBlet _ = dateA.compare(toDate: dateB, granularity: .hour) == .orderedSamelet _ = dateA.isAfterDate(dateB, orEqual: true, granularity: .month)let _ = dateC.isInRange(date: dateA, and: dateB, orEqual: true, granularity: .day)let _ = dateA.earlierDate(dateB)let _ = dateA.laterDate(dateB)

SwiftDate还支持对日期进行推导,从一些常用的日期概念计算得到实际的日期:

let _ = DateInRegion().dateAt(.endOfDay) // 今天结束let _ = dateA.nextWeekday(.friday) // dateA 后的下一个周五let _ = (date.dateAt(.startOfMonth) - 3.days)  // 月头前3天let _ = dateA.compare(.endOfWeek)  // 是否一周的结束

还有极为丰富的日期格式化:

let london = Region(calendar: .gregorian, zone: .europeLondon, locale: .english)let date = ... // 2017-07-22T18:27:02+02:00 in london regionlet _ = date.toDotNET() // /Date(1500740822000+0200)/let _ = date.toISODate() // 2017-07-22T18:27:02+02:00let _ = date.toFormat("dd MMM yyyy 'at' HH:mm") // "22 July 2017 at 18:27"
b0a7da36721b4753ad97258071eb66dd

SwiftDate日期库

总结

SwiftDate功能丰富,使用方便,其实现了包括日期和时区的解析、操控和格式化等方法,使得在 Swift 中进行日期相关的处理变得十分简单,在实践中有很强的实用价值,同时也是一个十分优秀的 Swift 开源项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值