NSDate
から取得しようとしてUIDatePicker
いますが、末尾が 20 秒の日付時刻が常に返されます。NSDate
Swiftで秒を手動でゼロに設定するにはどうすればよいですか?
9492 次
7 に答える
36
extension Date {
var zeroSeconds: Date? {
let calendar = Calendar.current
let dateComponents = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: self)
return calendar.date(from: dateComponents)
}
}
使用法:
let date1 = Date().zeroSeconds
let date2 = Date()
print(date2.zeroSeconds)
于 2017-07-13T06:05:33.787 に答える
10
Swift のこの回答から:
var date = NSDate();
let timeInterval = floor(date .timeIntervalSinceReferenceDate() / 60.0) * 60.0
date = NSDate(timeIntervalSinceReferenceDate: timeInterval)
于 2015-04-22T06:33:02.210 に答える
6
日付を完全な分に切り捨てるには、
let date = NSDate()
let cal = NSCalendar.currentCalendar()
var fullMinute : NSDate?
cal.rangeOfUnit(.CalendarUnitMinute, startDate: &fullMinute, interval: nil, forDate: date)
println(fullMinute!)
Swift 4以降の更新:
let date = Date()
let cal = Calendar.current
if let fullMinute = cal.dateInterval(of: .minute, for: date)?.start {
print(fullMinute)
}
この方法は、完全な時間、日、月などに切り捨てるために簡単に適用できます。
于 2015-04-22T07:29:24.543 に答える