Date Formatter - String to Date 2012-02-05T00:00:00 + 00:00

时间:2012-03-06 12:39:55

标签: ios xcode nsdateformatter

我正在尝试将此字符串“2012-02-05T00:00:00 + 00:00”转换为更具吸引力,格式正确的字符串,例如“2012年3月5日星期二。”

我有一个我正在工作的例子:

NSString *dateStr = @"20081122";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];  

// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];
NSLog(@"date: %@", dateStr);
[dateFormat release];

我如何使用上面的类似代码来容纳日期格式“2012-02-05T00:00:00 + 00:00”?

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用 -

[dateFormat setDateFormat:@"yyyy-MM-ddThh:mm:ss z"];

答案 1 :(得分:1)

当我看到您的时间“2012-02-05T00:00:00 + 00:00”时,我认为您正在将“NSDate”打印到控制台中。在那个时间“2012-02-05”是一个日期,“T00:00:00 + 00:00”是一个时间。所以当你需要像这样使用日期时,

NSString *dateStr = @"2012-02-05";

你必须像这样格式化

[dateFormat setDateFormat:@"yyyy-MM-dd"];

如果您想根据需要将日期组件转换为

NSString *dateStr = @"2012-02-05";

// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormat dateFromString:dateStr];  

// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:date];  
NSLog(@"%@",dateStr);

您甚至可以这样做,将当前日期转换为您喜欢的日期。

// Convert date object to desired output format
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"];
dateStr = [dateFormat stringFromDate:[NSDate date]]; //for current date  
NSLog(@"%@",dateStr);