如何在 iPhone 上检查日期有效性?

3
我想在我的数据库中添加日期,而且我想以特定格式添加它,比如dd/mm/yyyy。如何检查其有效性?就像电子邮件验证一样,我想检查它是否符合指定的格式?如何做到这一点?
1个回答

13

1) 您的日期输入方法是什么?

  • 如果是通过UIDatePicker,您无需做任何操作,UIDatePicker将返回一个有效的NSDate。我鼓励您操作NSDate对象,并使用UIDatePicker作为日期输入,特别是为了避免日期验证问题。

  • 如果是通过文本字段,您可以将UITextField的inputView设置为UIDatePicker,这样您也不必担心日期验证,因为您显然直接拥有一个(解析的)NSDate,您可以直接操作它,确保它是有效的。

然后,在任一情况下,使用NSDateFormatter将您从UIDatePicker输入的NSDate转换为NSString(以便插入到数据库中)。


2) 如果用户通过键盘输入了纯文本,并且不能或者不想使用UIDatePicker(甚至作为UITextFieldinputView),您可以通过NSDateFormatter将您的NSString转换为NSDate,以检查它是否返回一个非nil的 NSDate (表示它是一个有效的日期)。

注意:您还可以使用NSRegularExpression或者NSPredicate类来检查您的字符串格式...但是您将无法获得NSDate验证的细节(例如检查31/02/2011或67/13/99是否无效)


好的,那如果我不想要那个通用格式怎么办?我在这里使用的是文本字段...你说的是第二点对吧? - Jean-Luc Godard
1
是的,我的第二个观点是...或者将你的UITextFieldinputView @属性设置为UIDatePicker。创建你的UIDatePicker实例(通过代码或使用IB),配置它,设置它的代理,然后将它的UIControlEventValueChanged事件与你的代码中的一个目标和动作相关联。在相关的动作(=当用户改变选择器的日期时触发)中,你可以做任何你想做的事情,比如将UIDatePickerNSDate转换为NSString(使用NSDateFormatter)并将这个字符串显示在你的UITextField中。 - AliSoftware
假设用户点击了死亡日期,我们如何验证它? - Vinoth - Marios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接