在 ios 中将字符串数据“03:12:00 May 06, 2014 MDT”转换为 nsdate“03-05-2014”
Posted
技术标签:
【中文标题】在 ios 中将字符串数据“03:12:00 May 06, 2014 MDT”转换为 nsdate“03-05-2014”【英文标题】:convert string data " 03:12:00 May 06, 2014 MDT" into nsdate " 03-05-2014 " in ios 【发布时间】:2014-05-09 11:59:26 【问题描述】:我的日期类似于"payment_date" = "03:12:00 May 06, 2014 MDT";
。
但我想把这些数据转换成NSDate
,比如"06-05-2014"
请帮帮我, 不知道怎么处理..
我从Converting NSString to NSDate (and back again)得到了答案
__block NSDate *detectedDate;
//Detect.
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingAllTypes error:nil];
[detector enumerateMatchesInString:t_date
options:kNilOptions
range:NSMakeRange(0, [t_date length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
detectedDate = result.date;
NSDate *d=result.date;
];
【问题讨论】:
*** 上已有解决方案。 你能给我那个链接吗? ***.com/questions/3917250/… @user3620252:***.com/questions/10570593/… 确保您阅读并理解了 NSDate 的文档。这里有大量的问题,对 NSDate 的误解使人们认为结果实际上是正确的却得到了错误的结果。 【参考方案1】:编辑
NSString *str = @"03:12:00 October 06, 2014 MDT";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[df setDateStyle:NSDateFormatterLongStyle];
str = [str substringFromIndex:9];
NSDate *date = [df dateFromString:[str substringToIndex:[str length] -3]];
[df setDateFormat:@"dd-MM-YYYY"];
NSLog(@"%@",[df stringFromDate:date]);
【讨论】:
此代码忽略给定的时区“MDT”。并且使用固定范围 (9, 13) 的子字符串不是最好的主意。如果月份的字母超过三个怎么办? @MartinR :其实我是根据问题的要求给出的解决方案。 好吧,它转换了字符串“03:12:00 May 06, 2014 MDT”,但它失败了“03:12:00 October 06, MDT”...... @MartinR 先生,您是绝对正确的。当我的日期从“四月”或其他月份开始时,我的应用程序崩溃了...... @MartinR & Darshan_Ethan :您现在可以查看我的代码。快乐的编码。 :)以上是关于在 ios 中将字符串数据“03:12:00 May 06, 2014 MDT”转换为 nsdate“03-05-2014”的主要内容,如果未能解决你的问题,请参考以下文章
如何将afnetworking json字典转换为字符串,然后在IOS中将字符串转换为字典?
如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor