安装最新的Mac OSX 64位Anaconda Python发行版之后 ,在尝试启动IPython Notebook时,我不断收到一个ValueError。 开始ipython正常工作: 3-millerc-~:ipython Python 2.7.3 |Anaconda 1.4.0 (x86_64)| (default, Feb 25 2013, 18:45:56) Type "copyright", "credits" or "license" for more information. IPython 0.13.1 — An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about […]
看来, NSDateFormatter有一个“function”,意想不到的咬你:如果你做一个简单的“固定”格式的操作,如: NSDateFormatter* fmt = [[NSDateFormatter alloc] init]; [fmt setDateFormat:@"yyyyMMddHHmmss"]; NSString* dateStr = [fmt stringFromDate:someDate]; [fmt release]; 然后,它在美国和大多数地区正常工作,直到…一个人的手机设置为24小时的地区设置12/24小时开关设置为12。然后上面开始加上“AM”或“PM”上结果string的结尾。 (见,例如, NSDateFormatter,我做错了什么或这是一个错误? ) (请参阅https://developer.apple.com/library/content/qa/qa1480/_index.html ) 显然苹果已经宣布这是“坏” – 破碎devise,他们不会解决它。 规避显然是为特定地区(通常是美国)设置date格式化程序的语言环境,但是这有点麻烦: NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [df setLocale: loc]; [loc release]; 不是太糟糕了,但是我正在处理大约10个不同的应用程序,而我所看到的第一个应用程序有43个这种情况。 因此,对于macros/重写类/任何的任何聪明的想法,以尽量减less努力改变一切,而不使代码晦涩? (我的第一个直觉是用一个版本来覆盖NSDateFormatter,这个版本会在init方法中设置locale。需要改变两行 – alloc / init行和添加的导入。) 添加 这是我到目前为止 – 似乎在所有情况下工作: @implementation BNSDateFormatter -(id)init { static NSLocale* […]