我正在努力将UTC时间转换为我想要的日期格式。
2012-03-10T09:30:00Z
需要转换为以下格式
3:00:00pm April 19, 2012
请问有人可以帮我解决这个问题吗?
我试过以下,
NSString *formatted;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss EEEE, MMM d"];
// Here datetime= 2012-03-10T09:30:00Z
NSDate *date = [NSDate dateWithTimeIntervalSince1970: [datetime intValue]];
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"dateString: %@", dateString);
但是,它的打印错误日期如“1月1日星期四06:03:32”。请纠正我。
更新:我有另一个问题,它没有给我正确的时间,但它给出了正确的日期。我的代码如下。
NSString *formatted;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss EEEE, MMM d"];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSDate *date = [df dateFromString:datetime];
NSString *dateString = [formatter stringFromDate:date];
NSLog(@"dateString: %@", dateString);
谢谢!
答案 0 :(得分:0)
将ISO日期字符串转换为NSDate
:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSDate *date = [df dateFromString:date_str];
然后,您可以将其转换为您当地的时区:
[df setTimeZone:[NSTimeZone localTimeZone]];
[df setDateFormat:@"HH:mm:ss EEEE, MMM d"];
在您的代码中,您的[datetime intValue]
可能不正确。