swift – NSDate的昨天

如何创建一个自定义日期而不是当前日期的NSDate对象?例如,我想创建一个var的昨天或2天前。
您应该使用 NSCalendar计算日期。例如,在Swift 3中,今天前两天的日期是:
let calendar = Calendar.current
let twoDaysAgo = calendar.date(byAdding: .day,value: -2,to: Date())

或者在Swift 2:

let calendar = NSCalendar.currentCalendar()
let twoDaysAgo = calendar.dateByAddingUnit(.Day,toDate: NSDate(),options: [])

或者获取一个月的第一个月,您可以从当前日期获取日期,月份和年份,将日期调整为月份的第一天,然后创建一个新的日期对象。在Swift 3:

var components = calendar.dateComponents([.year,.month,.day],from: Date())
components.day = 1
let firstOfMonth = calendar.date(from: components)]

或者在Swift 2:

let components = calendar.components([.Year,.Month,.Day],fromDate: NSDate())
components.day = 1
let firstOfMonth = calendar.dateFromComponents(components)

NSCalendar / Calendar类中有很多有用的函数,因此您应该进一步调查。有关详细信息,请参阅NSCalendar class reference

但我建议不要对日期对象进行任何手动调整,通过调整一些时间间隔,即每天的秒数的倍数(例如24 * 60 * 60)。如果你只是添加一些时间间隔,但是对于日期计算,你真的想使用日历对象,以避免夏令时等问题。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...