Gha*_*.64 33 objective-c nsdate
我想得到日期,NSDate不需要时间.例:
NSDate* today = [NSDate date]; // want to give 20-06-2012 only
Run Code Online (Sandbox Code Playgroud)
我想在没有显示时间的情况下获取今天的日期,并在NSDate变量或字符串变量中使用它.
jod*_*ody 43
万一其他人寻找这个.我使用了以下内容:
NSDateComponents *components = [[NSCalendar currentCalendar]
components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
fromDate:[NSDate date]];
NSDate *startDate = [[NSCalendar currentCalendar]
dateFromComponents:components];
Run Code Online (Sandbox Code Playgroud)
Mur*_*tam 10
在性能方面,这种方法可能比使用NSDateFormatter或NSCalendar更好.
斯威夫特3
let timeInterval = floor(Date().timeIntervalSinceReferenceDate / 86400) * 86400
let newDate = Date(timeIntervalSinceReferenceDate: timeInterval)
Run Code Online (Sandbox Code Playgroud)
斯威夫特2
let timeInterval = floor(NSDate().timeIntervalSinceReferenceDate / 86400) * 86400
let newDate = NSDate(timeIntervalSinceReferenceDate: timeInterval)
Run Code Online (Sandbox Code Playgroud)
您还可以考虑时区(此功能是NSDate扩展的一部分):
斯威夫特3
extension Date {
func dateWithoutTime() -> Date {
let timeZone = TimeZone.current
let timeIntervalWithTimeZone = self.timeIntervalSinceReferenceDate + Double(timeZone.secondsFromGMT())
let timeInterval = floor(timeIntervalWithTimeZone / 86400) * 86400
return Date(timeIntervalSinceReferenceDate: timeInterval)
}
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特2
extension NSDate {
func dateWithoutTime() -> NSDate {
let timeZone = NSTimeZone.localTimeZone()
let timeIntervalWithTimeZone = self.timeIntervalSinceReferenceDate + Double(timeZone.secondsFromGMT)
let timeInterval = floor(timeIntervalWithTimeZone / 86400) * 86400
return NSDate(timeIntervalSinceReferenceDate: timeInterval)
}
}
Run Code Online (Sandbox Code Playgroud)