想要2000年1月或2000年1月的NSDateformatter [英] Want NSDateformatter for January,2000 or January 2000
问题描述
我有一个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屋!