0

这是我的代码:

[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 :

我单独得到日期“2013 年 2 月 18 日星期一 09:25:53”并使用格式对其进行@"EEE MM d HH:mm:ss yyyy"格式化。我得到一个不正确的输出:"2013-02-18 03:55:53 -0000"仅时间打印不正确。我遵循日期格式模式来指定模式,但我仍在逐步解决这个问题。我无法理解哪里出了问题。如果有人发现问题会很有帮助。提前致谢

4

5 回答 5

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);

2013 年 2 月 26 日星期二 05:38:00 // “EEE MM d hh:mm:ss yyyy

2013 年 2 月 26 日星期二 17:46:22 // “EEE MM d HH:mm:ss yyyy”

2013-02-26 12:08:00 +0000 //仅使用 NSLog 进行日志记录

希望这可以帮助你

于 2013-02-26T12:21:59.110 回答
0

当您像这样打印结果日期时,您需要为 NSDateFormatter 设置时区:

[formatter setTimeZone:[NSTimeZone localTimeZone]];
于 2013-02-26T10:38:12.007 回答
0

您需要用作:

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);
于 2013-02-26T10:53:40.697 回答
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]);
于 2013-02-26T11:10:45.683 回答
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];
于 2013-04-19T09:40:46.960 回答