我尝试从 NSString 获取 NSDateUNKNOWN格式,所以我写了一个如下所示的函数
-(void)dateFromString:(NSString*)string {
NSError *error = NULL;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:(NSTextCheckingTypes)NSTextCheckingTypeDate error:&error];
NSArray *matches = [detector matchesInString:string
options:0
range:NSMakeRange(0, [string length])];
NSLocale* currentLoc = [NSLocale currentLocale];
for (NSTextCheckingResult *match in matches) {
if ([match resultType] == NSTextCheckingTypeDate) {
NSLog(@"Date : %@", [[match date] descriptionWithLocale:currentLoc]);
}
}
}
除一处外,它运作良好。
如果我调用
[self dateFromString:@"6/12"];
它打印
日期 : 星期四,June 12,2014 年 12:00:00 PM 澳大利亚东部
标准时间
同时如果我打电话
[self dateFromString:@"13/12"];
它打印
日期 : 星期五,12月13日,2013 年 12:00:00 PM 澳大利亚东部
夏令时
基本上,我希望函数的行为保持一致。由于我住在澳大利亚,第一次执行应该是12月6日返回。第二次调用结果正确。
我在这里做错了什么?
事实上,我写的方法效果很好:)。不幸的是,我的测试手机中的区域格式设置为美国,并且从未设置回澳大利亚:我的错..
@joiningss:向这些方法扔一些随机格式化的日期字符串,你会惊讶地发现苹果如何让开发人员变得轻松。不管怎样,非常感谢你。
@mrt,Chavda Greg:非常感谢大家。我真的很感谢你的帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)