2014-01-15 1 views
3

Как вы конвертируете любую дату в миллисекунды? Например, 2014-01-23 для преобразования временной метки.Преобразование даты в метку времени в iOS

NSDate *date = [dateFormatter dateFromString:@"2014-01-23"]; 
NSLog(@"date=%@",date); 
NSTimeInterval interval = [date timeIntervalSince1970]; 
NSLog(@"interval=%f",interval); 
NSDate *methodStart = [NSDate dateWithTimeIntervalSince1970:interval]; 
[dateFormatter setDateFormat:@"yyyy/mm/dd "]; 
NSLog(@"result: %@", [dateFormatter stringFromDate:methodStart]); 

результат выхода: 1970/30/01

ответ

6

Имейте это попробовать. «мм» обозначает минуту, а «ММ» - месяц.

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init] ; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"] ; 
NSDate *date = [dateFormatter dateFromString:@"2014-01-23"] ; 
NSLog(@"date=%@",date) ; 
NSTimeInterval interval = [date timeIntervalSince1970] ; 
NSLog(@"interval=%f",interval) ; 
NSDate *methodStart = [NSDate dateWithTimeIntervalSince1970:interval] ; 
[dateFormatter setDateFormat:@"yyyy/MM/dd "] ; 
NSLog(@"result: %@", [dateFormatter stringFromDate:methodStart]) ; 
+0

эй я борюсь со временем, как у меня есть конкретная дата и время, например, 1 января 2008 года 9:00, как получить временную метку конкретной даты с конкретным временем ... – dreamBegin

0

NSTimeInterval действительно дабл, будучи секунд с определенной даты (в вашем случае, начало 1970 г.)

+0

результат должен быть 2014-01-23, почему 1970/30/01 – user2799156

+0

Я полагаю, ваш первоначальный dateFormatter настроен неправильно. –

0

[date1 timeIntervalSinceDate:date2] вернет секунды из двух объектов NSDate.

double seconds = [date1 timeIntervalSinceDate:date2]; 
double milliSecondsPartOfCurrentSecond = seconds - [seconds intValue]; 

milliSecondsPartOfCurrentSecond

0

Примечание: - формат UNIX Timestamp содержит 13 цифр так что нам нужно 1000 умножение с результатом. И отметка времени должна быть UTC ZONE не наш местный часовой пояс.

- (void)GetCurrentTimeStamp 
    { 
     NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; 
     [objDateformat setDateFormat:@"yyyy-MM-dd"]; 
     NSString *strUTCTime = [self GetUTCDateTimeFromLocalTime:@"2014-01-23"]; 
     NSDate *objUTCDate = [objDateformat dateFromString:strUTCTime]; 
     long long milliseconds = (long long)([objUTCDate timeIntervalSince1970] * 1000.0); 
     NSLog(@"Local Time = %@---- UTC = %@ ----- TimeSatmp = %ld ---- TimeStamp = %lld",strTime,strUTCTime,unixTime,milliseconds); 
    } 

- (NSString *) GetUTCDateTimeFromLocalTime:(NSString *)IN_strLocalTime 
    { 
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setDateFormat:@"yyyy-MM-dd"]; 
     NSDate *objDate = [dateFormatter dateFromString:IN_strLocalTime]; 
     [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; 
     NSString *strDateTime = [dateFormatter stringFromDate:objDate]; 
     return strDateTime; 
    }