我想查找日期与“yyyy-MM-dd'T'HH:mm:ss”格式之间的时间(以分钟为单位)(示例:“2014-02-03T11:28:00”)和当前时间(格林尼治标准时间,因为字符串是格林尼治标准时间。我试过
NSDateFormatter *formatter;
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *now = [NSDate date];
NSDate *trackingDataDate = [formatter dateFromString:timeStamp];
NSTimeInterval distance = [now timeIntervalSinceDate:trackingDataDate];
double timeInMinutes = distance / 60;
但是这会返回NaN。我的代码出了什么问题,如何在事件之间获得时间?
答案 0 :(得分:1)
简单的错误。您错过了NSDateFormatter的分配。添加以下行而不是NSDateFormatter *formatter;
,它工作正常。
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
更新:根据您的评论,请参阅以下代码以转换为GMT日期。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss";
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];
答案 1 :(得分:0)
试试这个:
NSString* string=@"26-01-2014";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-mm-yyyy"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSDate *date = [dateFormatter dateFromString:string];
NSLog(@"Date = %@",date);