Veg*_*Flo 0 nsdateformatter swift
我正在尝试使用 NSDateFormatter 从日期中删除时间。这是代码:
func dateWithOutTime( datDate: NSDate?) -> NSDate {
let formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM-yyyy"
let stringDate: String = formatter.stringFromDate(datDate!)
let dateFromString = formatter.dateFromString(stringDate)
return dateFromString!
}
Run Code Online (Sandbox Code Playgroud)
如果我发送前 04-01-2016 12:00:00,返回是 03-01-2016 23:00:00 我已经尝试更改 dateFormat,但它仍然保持从日期中减去一天......为什么?请帮忙 :)
最简单的方法是使用startOfDayForDate
的NSCalendar
斯威夫特 2:
func dateWithOutTime( datDate: NSDate) -> NSDate {
return NSCalendar.currentCalendar().startOfDayForDate(datDate)
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 3+:
func dateWithOutTime(datDate: Date) -> Date {
return Calendar.current.startOfDay(for: datDate)
}
Run Code Online (Sandbox Code Playgroud)
或将时区调整为 UTC/GMT
斯威夫特 2:
func dateWithOutTime( datDate: NSDate) -> NSDate {
let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
calendar.timeZone = NSTimeZone(forSecondsFromGMT: 0)
return calendar.startOfDayForDate(datDate)
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 3+:
func dateWithOutTime(datDate: Date) -> Date {
var calendar = Calendar(identifier: .gregorian)
calendar.timeZone = TimeZone(secondsFromGMT: 0)!
return calendar.startOfDay(for: datDate)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1728 次 |
最近记录: |