标签:
纠结了我好几天终于搞明白了为什么字符串转date总是相差8个小时(时区不管怎么换都没有用,大家可以试一下,也可能是我的技术不好--)
// 日期格式化
NSString *date = @"2015-01-10 20:40:30";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
// 下面这两个都可以
[inputFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
// [inputFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];//(这个是格林尼治所在地的标准时间,也就是0时区,所以加8个时区就可以了)
[inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *outString = [inputFormatter dateFromString:date];
打印出来是这个date----2015-01-10 20:40:30 +0000这个是正确的
温馨提示不知道为什么我设置时区没有用,
[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]// 这个没有用
+ (NSTimeZone *)systemTimeZone;// 系统时区
+ (NSTimeZone *)defaultTimeZone;// 默认时区
NSLog(@"name--%@",inputFormatter.timeZone.name);// 获取时区名称
///----------
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(dateTime) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];// 将事timer加入主事件徇环
---------------------计算相差多长时间----
- (void)intervalFromLastDate:(NSDate *)date1 toTheDate:(NSDate *)date2{
double cha = [date1 timeIntervalSinceDate:date2];
// NSString *timeString=@"";
// NSString *house=@"";
// NSString *min=@"";
// NSString *sen=@"";
// sen = [NSString stringWithFormat:@"%d", (int)cha%60];
// 秒
// sen=[NSString stringWithFormat:@"%@", sen];
minutes = [NSString stringWithFormat:@"%d", (int)cha/60%60];
// 分
// minutes = [NSString stringWithFormat:@"%@", min];
// 小时
hour = [NSString stringWithFormat:@"%d", (int)cha/3600];
// NSLog(@"%@-----%@",hour , minutes);
// hour = [NSString stringWithFormat:@"%@", house];
}
标签:
原文地址:http://www.cnblogs.com/dream999/p/4284920.html