这是我的代码:
[dateFormat setDateFormat:@"EEE MM d HH:mm:ss yyyy"];
logDate = [dateFormat dateFromString:[line substringToIndex:24]];
行由字符串组成:"Mon Feb 18 09:25:53 2013: FAILED : Configuration-Update :
“
我单独获取日期“Mon Feb 18 09:25:53 2013”并使用@"EEE MM d HH:mm:ss yyyy"
格式对其进行格式化。
输出错误:"2013-02-18 03:55:53 -0000"
单独打印时间不正确。我跟着Date Format Patterns来指定模式,但我仍在逐步解决这个问题。我无法理解它出错的地方..如果有人发现问题会有所帮助。
提前谢谢
答案 0 :(得分:1)
试试这个
NSDate *date = [NSDate date];
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"EEE MM d hh:mm:ss yyyy"];
NSLog(@"%@",[formatter stringFromDate:date]);
NSLog(@"%@",date);
当您使用NSLog进行日志记录时,您将获得UTC格式(UTC由偏移值组成,在印度,其标准时间为+5.30),即yyyy-MM-d HH:mm:ss z,z是添加或减去的偏移量根据当地时间或当前时间。
例如
NSLog(@"%@",[formatter stringFromDate:date]);
NSLog(@"%@",date);
星期二02 26 05:38:00 2013 // “EEE MM d hh:mm:ss yyyy ”
星期二02 26 17:46:22 2013 // “EEE MM d HH:mm:ss yyyy”
2013-02-26 12:08:00 +0000 //只使用NSLog进行日志记录
希望这有助于你
答案 1 :(得分:0)
当您打印结果日期时,您需要为NSDateFormatter设置时区:
[formatter setTimeZone:[NSTimeZone localTimeZone]];
答案 2 :(得分:0)
您需要使用as:
NSString *line=@"Mon Feb 18 09:25:53 2013: FAILED : Configuration-Update :";
NSDateFormatter *dateFormat=[NSDateFormatter new];
[dateFormat setDateFormat:@"EEE' 'MM' 'd' 'HH:mm:ss' 'yyyy"];
NSDate *logDate = [dateFormat dateFromString:[line substringToIndex:24]];
NSLog(@"logDate->%@",logDate);
答案 3 :(得分:0)
如果我们获取NSdate对象的日志,该对象将仅显示与时区相关的日期+0000。为此我们需要将日期格式化为我们当地的时区。喜欢这个..
[dateFormat setDateFormat:@"EEE MM d HH:mm:ss yyyy"];
logDate = [dateFormat dateFromString:@"Mon Feb 18 09:25:53 2013"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
NSLog(@"Date %@",[dateFormat stringFromDate:logDate]);
答案 4 :(得分:0)
感谢所有..通过这种方式改变代码它起作用..
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init]autorelease];
[dateFormat setDateFormat:@"EEE MM d HH:mm:ss yyyy"];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
return [dateFormat dateFromString:dateString];