2016-03-16 51 views
0

我有一个TextField,并且在EditingDidBegin操作中与它关联的UIDatePicker。从TextField获取日期与UIDatePicker

我可以使用下面的代码从Date Picker中获取日期,以显示在TextField中“2015年2月12日”。

let dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle 
dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle 
installDateTextField.text = dateFormatter.stringFromDate(sender.date) 

我必须将此值作为NSDate保存到CoreData?

当我使用下面的代码将TextField值转换回NSDate时,它不起作用。

let formatter = NSDateFormatter() 
formatter.dateFormat = "yyyy-MM-dd" 
formatter.locale = NSLocale(localeIdentifier: "us") 
var installDateTime: NSDate? 

if let dateString = installDateTextField.text { 
    installDateTime = formatter.dateFromString(dateString) 
} 

TextField文本为“2015年2月12日”。如何将文本转换为“2/12/2015”,以便dateFromSting()不会失败。

+1

的UIDatePicker有一个日期属性,显示当前的日期挑选。这里是[文档](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIDatePicker_Class/index.html#//apple_ref/occ/instp/UIDatePicker/date) – Gasim

+0

不能使它与NSDateFormatter一起工作。 我创建了一个NSDate?变量并在TextField的“EditingDidBegin”方法内分配来自UIDatePicker的值。 后来当我不得不将数据保存到数据库时,我使用了这个NSDate的值?而不是从TextField转换值。 – user2347528

回答

0

下面是代码,您需要修改日期格式

let formatter = NSDateFormatter() 
formatter.dateFormat = "MM dd, yyyy" 
formatter.locale = NSLocale(localeIdentifier: "us") 
var installDateTime: NSDate? 

if let dateString = installDateTextField.text { 
    installDateTime = formatter.dateFromString(dateString) 
}