首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UIDatepicker获取日期组件

从UIDatepicker获取日期组件
EN

Stack Overflow用户
提问于 2016-01-09 09:34:56
回答 3查看 2.6K关注 0票数 1

我有一个datepicker (日期类型),它要求用户选择他/她的出生日期。

如何获取出生日期的日期部分?组件(日、月、年)。

我可以从Datepicker获取NSDate,然后使用日历获取组件。但这似乎是一种拐弯抹角的方式。Datepicker已经对公历做了一个假设。

我可以不通过NSDate直接从Datepicker获取组件吗?

EN

回答 3

Stack Overflow用户

发布于 2016-01-09 10:22:23

您必须通过NSCalender来获取组件,但它可以是NSDatePicker已经在使用的组件:

代码语言:javascript
复制
let components = datePicker.calendar.components([.Day, .Month, .Year], fromDate: datePicker.date)
let day = components.day
let month = components.month
let year = components.year
票数 1
EN

Stack Overflow用户

发布于 2019-06-24 02:10:35

SWIFT 5的更新

代码语言:javascript
复制
// Get date picker data
let components = datePicker.calendar.dateComponents([.day, .month, .year],
                                                    from: datePicker.date)
let day = components.day
let month = components.month
let year = components.year
票数 1
EN

Stack Overflow用户

发布于 2016-01-09 09:51:30

您可以使用NSCalendar组件方法从日期选择器日期中提取所需的任何组件。请看下面的示例:

代码语言:javascript
复制
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var datePicker: UIDatePicker!
    override func viewDidLoad() {
        super.viewDidLoad()
        datePicker.datePickerMode = .Date
        datePicker.minimumDate = NSCalendar.currentCalendar().dateByAddingUnit(.Year, value: -120, toDate: NSDate(), options: [])
        datePicker.addTarget(self, action: "dateChanged:", forControlEvents: .ValueChanged)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    func dateChanged(sender:UIDatePicker) {
        print(sender.date.year)
        print(sender.date.month)
        print(sender.date.day)
        print(NSCalendar.currentCalendar().components(.Year, fromDate: sender.date, toDate: NSDate(), options: []).year)
    }
}

extension NSDate {
    var day: Int {
        return NSCalendar.currentCalendar().component(.Day,   fromDate: self)
    }
    var month: Int {
        return NSCalendar.currentCalendar().component(.Month, fromDate: self)
    }
    var year: Int {
        return NSCalendar.currentCalendar().component(.Year,  fromDate: self)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34688752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档