在 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

如何在 Ruby 中将 IO 对象转换为字符串?

在 iOS 中将属性字符串设置为 UILabel

如何在 Android SOAP Webservices 中将 InputStream 数据转换为字符串

如何在swift(ios)中将字符串格式的日期转换为另一种字符串格式[重复]