我想在我的数据库中添加日期,而且我想以特定格式添加它,比如dd/mm/yyyy。如何检查其有效性?就像电子邮件验证一样,我想检查它是否符合指定的格式?如何做到这一点?
1) 您的日期输入方法是什么?
如果是通过UIDatePicker
,您无需做任何操作,UIDatePicker
将返回一个有效的NSDate。我鼓励您操作NSDate
对象,并使用UIDatePicker
作为日期输入,特别是为了避免日期验证问题。
如果是通过文本字段,您可以将UITextField
的inputView设置为UIDatePicker
,这样您也不必担心日期验证,因为您显然直接拥有一个(解析的)NSDate,您可以直接操作它,确保它是有效的。
然后,在任一情况下,使用NSDateFormatter
将您从UIDatePicker输入的NSDate转换为NSString(以便插入到数据库中)。
2) 如果用户通过键盘输入了纯文本,并且不能或者不想使用UIDatePicker
(甚至作为UITextField
的inputView
),您可以通过NSDateFormatter
将您的NSString转换为NSDate
,以检查它是否返回一个非nil的 NSDate
(表示它是一个有效的日期)。
注意:您还可以使用NSRegularExpression
或者NSPredicate
类来检查您的字符串格式...但是您将无法获得NSDate验证的细节(例如检查31/02/2011或67/13/99是否无效)
UITextField
的inputView
@属性设置为UIDatePicker
。创建你的UIDatePicker
实例(通过代码或使用IB),配置它,设置它的代理,然后将它的UIControlEventValueChanged
事件与你的代码中的一个目标和动作相关联。在相关的动作(=当用户改变选择器的日期时触发)中,你可以做任何你想做的事情,比如将UIDatePicker
的NSDate
转换为NSString
(使用NSDateFormatter
)并将这个字符串显示在你的UITextField
中。 - AliSoftware