ios-日期转换

不知道为什么,日期转换这个知识点,总是感觉自己老是忘,感觉现在也需要记录下,总结下

首先如果我们要让日期字符串按照我们想要指定的格式输出的话,我们需要先创建一个格式化器

let dateformatter = DateFormatter()
然后我们需要指定下格式化器的环境,在这个环境下输出相应的时间。我们一般设置为en就可以

 dateformatter.locale = Locale(identifier: "en")
然后我们再去设置转换日期的格式

dateformatter.dateFormat = "EEE MM dd HH:mm:ss zzz yyyy"
 其中对应的日期格式应该是 EEE MMM dd HH:mm:ss zzz  yyyy
 E表示星期几
 M表示月份
 d表示是几号
 H表示24小时制
 m表示分钟
 s表示秒
 y表示年

 Z表示时区

 zzz也是一样的

还有就是这里需要注意的是locale我们一定要去设置,因为DateFormatter实例话的dateFormat属性用上面的格式来进行转换在模拟器上可以解析,但是在真机上会存在问题。据网上资料说是因为上面的这种格式化字符串只有在英文的操作系统下才有效,为了保证在任何设置下都可以解析,我们就要去设置locale,设置为en 和en_US应该都可以。

还有介绍下日历的用法,我们可以用先获取当前的日历对象

      //获得当前的日历
        let calendar = NSCalendar.current
然后判断当前时间是不是今天,昨天,我们可以直接用函数来进行判断

判断是不是今天

 if calendar.isDateInToday(date)
判断是不是昨天

calendar.isDateInYesterday(date)
我们可以根据日历直接获取当前日期的年份

print(calendar.component(.year, from: date))

设置下如果比较的是年份,可以通过这样来比较,其中self代表的就是我们传入的日期

let componentsSet = Set<Calendar.Component>([.year])

let comps = calendar.dateComponents(componentsSet, from:self, to: Date())









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值