我有一个UTC格式的字符串日期:
"2012-11-20T05:23:02.34“
现在我想要UTC NSDate对象.我实现了这个功能。
+ (NSDate *)utcDateFromString:(NSString *)string withFormat:(NSString *)format {
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
inputFormatter.timeZone =[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
[inputFormatter setDateFormat:format];
NSDate *date = [inputFormatter dateFromString:string];
[inputFormatter release];
return date;
}像这样叫它..。
NSDate* submittedDate =[NSDate utcDateFromString:submittedDateString withFormat:@"YYYY-MM-dd'T'HH:mm:ss.SS"];但这将返回NSDate描述如下..
2011-11-20 05:23:02 +0000
如果你注意到日期上有一年的差异..。有人能解释一下为什么会这样吗..?
谢谢你的帮助。
发布于 2012-12-07 07:46:03
在dateformmater中,使用yyyy而不是YYYY
它应该是
NSDate* submittedDate =[NSDate utcDateFromString:submittedDateString withFormat:@"yyyy-MM-dd'T'HH:mm:ss.SS"];这将解决问题。
在下面的链接中,搜索YYYY。
它使用yyyy指定年份组件。一个常见的错误是使用YYYY。yyyy指定日历年,而YYYY指定在ISO年度周日历中使用的年份(“年份周”)。在大多数情况下,yyyy和YYYY的产量是相同的,但是它们可能有所不同。通常,您应该使用日历年。
发布于 2012-12-07 07:28:26
试试这种波纹管法。
-(NSDate *)getUTCFormateDate:(NSString *)localDate withFormat:(NSString *)format
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
NSDate *date = [dateFormatter dateFromString:localDate];
return date;
}像咆哮一样使用..。
NSDate *dateHere = [[NSDate alloc]init];
dateHere = [self getUTCFormateDate:@"2012-11-20T05:23:02.34" withFormat:@"yyyy-MM-dd'T'HH:mm:ss.SS"];
NSLog(@"Date here %@",dateHere);我得到的输出是日期2012-11-20 05:23:02 +0000
请看我的另一个答案,它用UTF格式返回字符串日期。
convert NSstring date to UTC dateenter link description here
https://stackoverflow.com/questions/13758629
复制相似问题