Почему время, возвращаемое [дата NSDate], отличается от моего текущего времени? - PullRequest
2 голосов
/ 20 января 2011

Привет, все, что я нахожусь в Индии. И я использовал следующий код, чтобы получить текущую дату.

[NSDate date]

она отображает "2011-01-20 06:51:35 +0000", ноФактическое время: «2011-01-20 12:21:35 +0000». Пожалуйста, скажите мне, как получить текущую дату.

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 20 января 2011

Для этой цели вам нужно использовать Date Formatter. Ниже приведен пример кода для этого.

NSDate *testDate=[NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM DD YY hh:mm"];//You can set your required format here
NSString *dt = [formatter stringFromDate:testDate];
[formatter release];

NSString *strDateTaken=dt;

Приветствия

3 голосов
/ 20 января 2011

Что означает «фактическое время»?Текущее время в вашем часовом поясе?Учитывая приведенные значения времени, я бы предположил, что первое - это GMT, а вы хотите IST (+5: 30).(См. Часовые пояса в Википедии.) Зависит от того, что вы хотите сделать с датой - если вы просто хотите отформатировать дату и время в вашем текущем часовом поясе, ответ Адитьи должен сработать.

0 голосов
/ 02 сентября 2011

Найти текущую дату и разницу между текущей датой и данной датой ... ее рабочий код

NSDate *testDate=[NSDate date];
NSDateFormatter *formatterNew = [[NSDateFormatter alloc] init];
[formatterNew setDateFormat:@"dd-MM-yyyy HH:mm:ss "]; 
NSString *dt = [formatterNew stringFromDate:testDate];
NSString *strDateTaken=dt;
NSLog(@"Date=%@",strDateTaken);
[formatterNew release]; // This line can be removed if you are using ARC

NSDateFormatter *tempFormatter = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
NSDate *toDate = [tempFormatter dateFromString:strDateTaken];
NSLog(@"Current Date ==%@",toDate);

NSDateFormatter *tempFormatter1 = [[[NSDateFormatter alloc]init]autorelease];
[tempFormatter1 setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
NSDate *startdate = [tempFormatter1 dateFromString:@"30-08-2011 16:25:00"];
NSLog(@"Last Date ==%@",startdate);

int i = [startdate timeIntervalSince1970];  
int j = [toDate timeIntervalSince1970];
double X = j-i;
int days=(int)((double)X/(3600.0*24.00));


NSLog(@" Difference :%d",days);
...