当我尝试注销当前日期时,我得到的日期与实际日期不同:
NSLog(@“date%@”,[NSDate date]);
输出2012-04-25 23:59:28 +0000
我的机器时间2012-04-26 2:02 AM
任何人都知道如何解决这个问题?感谢
编辑
这是我在使用nsdataformatter
时得到的NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];
NSDate *date =[formatter dateFromString:[NSString stringWithString:@"2012-04-26 01:00:00"]];
NSLog(@"date %@",date);
输出:2012-04-25 23:00:00 +0000 令人困惑!
答案 0 :(得分:2)
没有什么可以解决的。 NSLog以GMT / UTC输出日期。如果您需要在当地时区,则需要使用NSDateFormatter。
答案 1 :(得分:1)
这可以帮助您打印本地时间和GMT时间
// gmt
NSTimeZone *aTimeZone1 = [NSTimeZone localTimeZone];
NSInteger aTimeInterval1 = -[aTimeZone1 secondsFromGMTForDate: [NSDate date]];
NSLog(@"GMT: %@", [NSDate dateWithTimeInterval: aTimeInterval1 sinceDate: [NSDate date]]);
// local
NSTimeZone *aTimeZone2 = [NSTimeZone localTimeZone];
NSInteger aTimeInterval2 = [aTimeZone2 secondsFromGMTForDate: [NSDate date]];
NSLog(@"Local: %@", [NSDate dateWithTimeInterval: aTimeInterval2 sinceDate: [NSDate date]]);
和强>
如果你想使用NSDateFormatter,那么试试这个:
NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
[aDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[aDateFormatter setDateFormat:@"dd:MM:yyyy HH:mm:ss"];
NSLog(@"GMT: %@", [aDateFormatter stringFromDate:[NSDate date]]);
[aDateFormatter setTimeZone:[NSTimeZone defaultTimeZone]];
NSLog(@"Local: %@", [aDateFormatter stringFromDate:[NSDate date]]);