2013-12-09 4 views
0

привет Я использую следующие для преобразования даты в строку в Objective C.Преобразование даты в милли секунд в ИОС

-(void)convertDateToJsonString:(NSString *)strDate 
{ 


    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    [formatter setTimeZone:[NSTimeZone systemTimeZone]]; 
    [formatter setLocale:[NSLocale systemLocale]]; 
    [formatter setDateFormat:@"yyyy/MM/dd"]; 


    NSDate * date =[formatter dateFromString:strDate]; 

    long long milliseconds = (long long)([date timeIntervalSince1970] * 1000.0); 

    NSLog(@"After conversion %lli",milliseconds); 



} 

его дает дату, но всегда получаю время 00:00:00 что-то не текущее время. Как получить выбранную дату с текущим временем в миллисекундах.

но его работа на текущую дату, как показано ниже

long long millisecs = (long long)([[NSDate date] timeIntervalSince1970] * 1000.0); 

    NSLog(@"After conversion %lli",millisecs); 

подводит с датой выбора даты и преобразование.

А также для получения точного часового пояса, например +530 в ios, есть ли какие-либо методы? я знаю [NSTimezone Systemzone] но дает целое значение как "Азия/Kolkatta + ..."

+1

если исходная дата строки не имеет никаких часов или минут. Как мог предположить 'dateFromString'? – Larme

+0

, так что мне нужно также получить время от строки, а затем получить миллисекунду вправо? @Larme – krishh

+0

Вы не показываете нам, как вы показываете время, поэтому все, что мы говорим, было бы догадкой, кроме как наблюдать, что если вы только разбираете дату, а не время, то вы не сможете волшебным образом получить время откуда-то. –

ответ

0

Проблема заключается в том, что ваш strDate не получает разобран dateFromString:. В результате ваш date будет nil, а timeInternvalSince1970 выполнит некоторую обработку по умолчанию на nil. Вы можете подтвердить это, добавив:

NSAssert (nil != date); 

после вашего Initialize date. Утверждение не получится.

Решение состоит в том, что вам нужен лучший formatter - тот, который соответствует формату переданного в strDate.

Но, возможно, у вас есть более фундаментальная проблема. Объект UIDatePickerdate напрямую возвращает объект NSDate. Откуда вы получаете strDate?

+0

привет @GoZoner дата получения правильной только проблема всегда время 00: 00: 00 + 5: 30 утра получение. Спасибо за ваш ответ friend – krishh

+0

Хорошо. Почему вы используете 'strDate' как' NSString' вместо того, чтобы просто получать 'NSDate' непосредственно из вашего' NSDatePicker', используя свойство 'date'? – GoZoner

0

Вы не добавили часы, минуты и секунды в NSDateFormatter как этот

[форматтера setDateFormat: @ "гггг/мм/дд HH: мм: сс ZZZ"];