UIDatePicker - DateFormatter返回选择器中选择的那一天之后的第二天

时间:2015-02-06 04:31:58

标签: ios swift nsdateformatter

我有一个函数返回

中选择的日期

我有这个函数应该将选择器中的日期作为字符串返回但它返回选择的那一天之后的那一天..我做了一个测试,NSDate对象似乎没问题。不知道我在这里做错了什么。

func dateformatterDate(date: NSDate) -> NSString
{
    var dateFormatter: NSDateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM-dd-yyyy"
    dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC")

    return dateFormatter.stringFromDate(date)


}

1 个答案:

答案 0 :(得分:5)

Xcode 8.3.1•Swift 3.1

问题是日期选择器使用localtime并且您使用UTC时间将其转换为字符串。试试这样:

extension Formatter {
    static let date = DateFormatter()
}
extension Date {
    var customDate: String {
        Formatter.date.dateFormat = "MM-dd-yyyy"
        return Formatter.date.string(from: self)
    }
}

Date().customDate   //  "04-14-2017"