NSD昨天的日期

2024-03-28

我如何创建一个NSDate具有当前日期以外的自定义日期的对象?例如,我想创建昨天或两天前的变量。


你应该使用NSCalendar https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSCalendar_Class/index.html用于计算日期。例如,在 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, value: -2, toDate: NSDate(), options: [])

或者要获取该月的第一天,可以从当前日期开始获取日、月、年,将天调整为该月的第一天,然后创建一个新的日期对象。在斯威夫特 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 类参考 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSCalendar_Class/index.html了解更多信息。

但我建议不要对日期对象进行任何手动调整,方法是按每天秒数的倍数的时间间隔进行调整(例如 24*60*60)。如果您只是添加一些时间间隔,那么该技术效果很好,但对于日期计算,您确实希望使用日历对象,以避免夏令时等引起的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSD昨天的日期 的相关文章

随机推荐