Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使NSDateFormatter接受一种格式的输入并以另一种格式显示?_Objective C_Cocoa_Interface Builder_Nsdateformatter - Fatal编程技术网

Objective c 如何使NSDateFormatter接受一种格式的输入并以另一种格式显示?

Objective c 如何使NSDateFormatter接受一种格式的输入并以另一种格式显示?,objective-c,cocoa,interface-builder,nsdateformatter,Objective C,Cocoa,Interface Builder,Nsdateformatter,我有一个表视图,它使用NSDateFormatter来显示日期,并使用完整的日期样式对日期进行格式化(今天的格式为“2010年9月24日星期五”或德语为“2010年9月24日Freitag”)。但在编辑日期时,格式化程序会强制用户以相同的格式键入日期。如何使格式化程序在输入时接受不同格式的日期?理想情况下,格式化程序应该使用一些启发式方法来自动检测输入的格式 我尝试在代码中设置lenient属性,但这根本不会改变观察到的行为 许多程序自动检测输入的日期格式,因此这是可能的。或者他们都在使用自己的

我有一个表视图,它使用
NSDateFormatter
来显示日期,并使用完整的日期样式对日期进行格式化(今天的格式为“2010年9月24日星期五”或德语为“2010年9月24日Freitag”)。但在编辑日期时,格式化程序会强制用户以相同的格式键入日期。如何使格式化程序在输入时接受不同格式的日期?理想情况下,格式化程序应该使用一些启发式方法来自动检测输入的格式

我尝试在代码中设置
lenient
属性,但这根本不会改变观察到的行为

许多程序自动检测输入的日期格式,因此这是可能的。或者他们都在使用自己的实现?

本节内容可能会有所帮助:

v10.4行为模式允许更多 可配置性更好 本地化;你应该用它来 任何新项目,最好是升级 使用v10.0的任何现有代码 使用v10.4行为的行为

对于向后二进制兼容性, 的默认行为 Mac OS X版本上的NSDateFormatter 10.4是v10.0的行为。然而,在MacOSX 10.5版及更高版本上 默认为v10.4行为。你可以 设置所有对象的默认行为 将NSDateFormatter的实例添加到 v10.4通过调用类来执行的行为 方法,setDefaultFormatterBehavior: 随着争论 NSDateFormatterBehavior10_4。你可以 还可以为任何实例设置行为 通过调用 setFormatterBehavior:


这真的没用。当切换到v10.0行为时,它接受不同格式的日期,但它忽略了区域设置,坚持使用month.day.year格式,这对于我们使用day.month.year格式的德国来说是错误的。