0

我有一个 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;
        }
    }
}
4

1 回答 1

1

2000 年 1 月

尝试,

@"MMMM, yyyy"

和 2000 年 1 月

尝试

@"MMMM yyyy"

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

更新:

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

于 2012-10-30T22:42:30.910 回答