想要2000年1月或2000年1月的NSDateformatter [英] Want NSDateformatter for January,2000 or January 2000

查看:141
本文介绍了想要2000年1月或2000年1月的NSDateformatter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个2012年1月的日期.我需要一个NSDateFormatter.

这是我的代码...

//Array of Date-formatter Strings
NSArray *dateFormatterList = [
    NSArray arrayWithObjects:
        @"yyyy-MM-dd'T'HH:mm:ss'Z'", 
        @"yyyy-MM-dd'T'HH:mm:ssZ",
        @"yyyy-MM-dd'T'HH:mm:ss", @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
        @"yyyy-MM-dd'T'HH:mm:ss.SSSZ", @"yyyy-MM-dd HH:mm:ss",
        @"MM/dd/yyyy HH:mm:ss", @"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",
        @"MM/dd/yyyy'T'HH:mm:ss.SSSZ", @"MM/dd/yyyy'T'HH:mm:ss.SSS",
        @"MM/dd/yyyy'T'HH:mm:ssZ", @"MM/dd/yyyy'T'HH:mm:ss",
        @"yyyy:MM:dd HH:mm:ss", @"yyyyMMdd", @"dd-MM-yyyy",
        @"dd/MM/yyyy", @"yyyy-MM-dd", @"yyyy/MM/dd",
        @"dd MMMM yyyy", @"MMddyyyy", @"MM/dd/yyyy", 
        @"MM-dd-yyyy",@"d'st' MMMM yyyy",
        @"d'nd' MMMM yyyy", @"d'rd' MMMM yyyy",
        @"d'th' MMMM yyyy", @"d'st' MMM yyyy",
        @"d'nd' MMM yyyy", @"d'rd' MMM yyyy",
        @"d'th' MMM yyyy", @"d'st' MMMM",
        @"d'nd' MMMM", @"d'rd' MMMM",
        @"d'th' MMMM", @"d'st' MMM",
        @"d'nd' MMM", @"d'rd' MMM",
        @"d'th' MMM",@"MMMM yyyy",nil];

NSString *targetDateFormatString  = @"dd-MM-yyyy";

count++; 

if (resultString) {
    for (NSString *dateFormatterString in dateFormatterList) {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:dateFormatterString];
        NSDate *originalDate = [dateFormatter dateFromString:resultString];

        if (originalDate) {
            [dateFormatter setDateFormat:targetDateFormatString];
            myDateString = [dateFormatter stringFromDate:originalDate];
            [finalDateArray addObject:myDateString];
            //NSLog(@"Converted date String is %@", myDateString);
            break;
        }
    }
}

解决方案

2000年1月

尝试

@"MMMM, yyyy"

以及2000年1月

尝试

@"MMMM yyyy"

与此同时,我也更新了对您其他问题的回答,请在此链接中查看我的回答

更新:

在上述代码中,将问题设置为resultString = @"January 2000",然后重试.我得到它为"01-01-2000".我已将您问题的其他答案更新为一种方法.使用该方法并将其称为[self dateStringFromString:@"January 2000" destinationFormat:@"dd-MM-yyyy"].请注意,由于原始字符串中没有日期参数,因此您会看到01作为默认日期.

I have a date January 2012. I need a NSDateFormatter for such date.

Here's my code...

//Array of Date-formatter Strings
NSArray *dateFormatterList = [
    NSArray arrayWithObjects:
        @"yyyy-MM-dd'T'HH:mm:ss'Z'", 
        @"yyyy-MM-dd'T'HH:mm:ssZ",
        @"yyyy-MM-dd'T'HH:mm:ss", @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
        @"yyyy-MM-dd'T'HH:mm:ss.SSSZ", @"yyyy-MM-dd HH:mm:ss",
        @"MM/dd/yyyy HH:mm:ss", @"MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",
        @"MM/dd/yyyy'T'HH:mm:ss.SSSZ", @"MM/dd/yyyy'T'HH:mm:ss.SSS",
        @"MM/dd/yyyy'T'HH:mm:ssZ", @"MM/dd/yyyy'T'HH:mm:ss",
        @"yyyy:MM:dd HH:mm:ss", @"yyyyMMdd", @"dd-MM-yyyy",
        @"dd/MM/yyyy", @"yyyy-MM-dd", @"yyyy/MM/dd",
        @"dd MMMM yyyy", @"MMddyyyy", @"MM/dd/yyyy", 
        @"MM-dd-yyyy",@"d'st' MMMM yyyy",
        @"d'nd' MMMM yyyy", @"d'rd' MMMM yyyy",
        @"d'th' MMMM yyyy", @"d'st' MMM yyyy",
        @"d'nd' MMM yyyy", @"d'rd' MMM yyyy",
        @"d'th' MMM yyyy", @"d'st' MMMM",
        @"d'nd' MMMM", @"d'rd' MMMM",
        @"d'th' MMMM", @"d'st' MMM",
        @"d'nd' MMM", @"d'rd' MMM",
        @"d'th' MMM",@"MMMM yyyy",nil];

NSString *targetDateFormatString  = @"dd-MM-yyyy";

count++; 

if (resultString) {
    for (NSString *dateFormatterString in dateFormatterList) {
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:dateFormatterString];
        NSDate *originalDate = [dateFormatter dateFromString:resultString];

        if (originalDate) {
            [dateFormatter setDateFormat:targetDateFormatString];
            myDateString = [dateFormatter stringFromDate:originalDate];
            [finalDateArray addObject:myDateString];
            //NSLog(@"Converted date String is %@", myDateString);
            break;
        }
    }
}

解决方案

For January, 2000

try,

@"MMMM, yyyy"

and For January 2000

try

@"MMMM yyyy"

I have updated my answer to your other questions with this as well, Please check my answer in this link

Update:

In the above code in question set resultString = @"January 2000" and try again. I am getting it as "01-01-2000". I have updated my other answer to your question to make it as a method. Use that method and call it as, [self dateStringFromString:@"January 2000" destinationFormat:@"dd-MM-yyyy"]. Please note that since date param is not present in your original string, you will see 01 as the default date.

这篇关于想要2000年1月或2000年1月的NSDateformatter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆