字符串中的日期与GMT中的当前时间之间的时间

时间:2014-02-03 11:35:48

标签: ios objective-c nsdate

我想查找日期与“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。我的代码出了什么问题,如何在事件之间获得时间?

2 个答案:

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