使用 DatePicker 和 TextField 时将 String 转换为 NSDate
Convert String to NSDate when using DatePicker and TextField
我正在使用一个使用日期选择器而不是键盘的文本字段。它将格式显示为字符串,如下所示 'May 31, 2015 at 12:30'(取自 println(delivery.text) 函数。)我想将日期更改为 NSDate,以便与当前日期进行比较。有什么建议吗?
@IBOutlet weak var pickUp: UITextField!
@IBOutlet weak var delivery: UITextField!
let dateFormat: NSDateFormatter = NSDateFormatter()
let datePicker: UIDatePicker = UIDatePicker()
let dateFormat2: NSDateFormatter = NSDateFormatter()
let datePicker2: UIDatePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
dateFormat.dateStyle = NSDateFormatterStyle.LongStyle
dateFormat.timeStyle = NSDateFormatterStyle.LongStyle
datePicker.datePickerMode = UIDatePickerMode.DateAndTime
datePicker.addTarget(self, action: Selector("updateDateField:"), forControlEvents:UIControlEvents.ValueChanged)
pickUp.inputView = datePicker
dateFormat2.dateStyle = NSDateFormatterStyle.LongStyle
dateFormat2.timeStyle = NSDateFormatterStyle.LongStyle
datePicker2.datePickerMode = UIDatePickerMode.DateAndTime
datePicker2.addTarget(self, action: Selector("updateDateField:"), forControlEvents:UIControlEvents.ValueChanged)
delivery.inputView = datePicker2
// Do any additional setup after loading the view.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.toolbarHidden = false
self.tabBarController?.tabBar.hidden = true
}
func updateDateField(sender: UIDatePicker) {
if sender == datePicker
{
pickUp.text = dateFormat.stringFromDate(sender.date)
}
if sender == datePicker2
{
delivery.text = dateFormat2.stringFromDate(sender.date)
}
}
您可以尝试使用 DateFormatter 将您的字符串格式化为日期,然后像这样拉出 NSDate 对象。在您的情况下,类似这样的东西可能会满足您的需求。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMMM d, yyyy at H:mm"
let date = dateFormatter.dateFromString(//insert string here)
请参阅 original documentation if you have further questions or this handy guide 格式指南。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy 'at' h:mm:ss a"
if let date = dateFormatter.dateFromString("May 31, 2015 at 12:30:15 PM") {
println(date)
}
如果您需要一些日期格式参考,您可以使用这个:
我正在使用一个使用日期选择器而不是键盘的文本字段。它将格式显示为字符串,如下所示 'May 31, 2015 at 12:30'(取自 println(delivery.text) 函数。)我想将日期更改为 NSDate,以便与当前日期进行比较。有什么建议吗?
@IBOutlet weak var pickUp: UITextField!
@IBOutlet weak var delivery: UITextField!
let dateFormat: NSDateFormatter = NSDateFormatter()
let datePicker: UIDatePicker = UIDatePicker()
let dateFormat2: NSDateFormatter = NSDateFormatter()
let datePicker2: UIDatePicker = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
dateFormat.dateStyle = NSDateFormatterStyle.LongStyle
dateFormat.timeStyle = NSDateFormatterStyle.LongStyle
datePicker.datePickerMode = UIDatePickerMode.DateAndTime
datePicker.addTarget(self, action: Selector("updateDateField:"), forControlEvents:UIControlEvents.ValueChanged)
pickUp.inputView = datePicker
dateFormat2.dateStyle = NSDateFormatterStyle.LongStyle
dateFormat2.timeStyle = NSDateFormatterStyle.LongStyle
datePicker2.datePickerMode = UIDatePickerMode.DateAndTime
datePicker2.addTarget(self, action: Selector("updateDateField:"), forControlEvents:UIControlEvents.ValueChanged)
delivery.inputView = datePicker2
// Do any additional setup after loading the view.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.toolbarHidden = false
self.tabBarController?.tabBar.hidden = true
}
func updateDateField(sender: UIDatePicker) {
if sender == datePicker
{
pickUp.text = dateFormat.stringFromDate(sender.date)
}
if sender == datePicker2
{
delivery.text = dateFormat2.stringFromDate(sender.date)
}
}
您可以尝试使用 DateFormatter 将您的字符串格式化为日期,然后像这样拉出 NSDate 对象。在您的情况下,类似这样的东西可能会满足您的需求。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMMM d, yyyy at H:mm"
let date = dateFormatter.dateFromString(//insert string here)
请参阅 original documentation if you have further questions or this handy guide 格式指南。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy 'at' h:mm:ss a"
if let date = dateFormatter.dateFromString("May 31, 2015 at 12:30:15 PM") {
println(date)
}
如果您需要一些日期格式参考,您可以使用这个: