gpt4 book ai didi

ios - 使用 NSDataDetector 检测 NSDate

转载 作者:技术小花猫 更新时间:2023-10-29 11:23:46 27 4
gpt4 key购买 nike

我试图从 UNKNOWN 格式的 NSString 中获取 NSDate,所以我编写了如下函数

-(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"];

它打印

Date : Thursday, June 12, 2014 at 12:00:00 PM Australian Eastern Standard Time

同时如果我打电话

[self dateFromString:@"13/12"];

它打印

Date : Friday, December 13, 2013 at 12:00:00 PM Australian Eastern Daylight Time

基本上,我希望函数表现一致。由于我住在澳大利亚,它应该在 12 月 6 日返回进行第一次执行。第二次调用结果正确。

我在这里做错了什么?

最佳答案

其实我写的这个方法真的很好用:)。不幸的是,我的测试手机中的区域格式设置为美国并且从未设置回澳大利亚:我的坏..

@joiningss:将一些随机格式化的日期字符串添加到该方法中,您会感到惊讶,苹果如何让开发人员轻松实现这一点。无论如何,非常感谢。

@mrt,Chavda&Greg:非常感谢大家。非常感谢您的帮助。

关于ios - 使用 NSDataDetector 检测 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20418863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com