2016-08-08 2 views
0

я получил следующий штамп времени в миллисекундах:NSDateFormatter: ошибка в преобразовании даты

NSDate * date = [NSDate dateWithTimeIntervalSince1970:1470524933.923123]; 
    NSDate * date2 = [NSDate dateWithTimeIntervalSince1970:1470666561.000]; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm:ss"]; 
    NSString * dateInString = [dateFormatter stringFromDate:date]; 

Когда я запускаю его я получаю следующее:

2016-08-07 в 00: 8:53, 2016-08-08 в 15:29:21

Однако первая дата должна быть следующим образом в соответствии с epoch time converter website I am using:

Ваш часовой пояс: 8/7/2016, 12:08:53 AM GMT + 1: 00 DST

Это говорит 00, а не 12. Почему?

+3

12 АМ за полночь, нет? – Larme

+0

Справа. Я пропустил это :). Спасибо – mm24

+0

Вы форматируете дату в формате 24 часа (HH). Если вы хотите 12 часов, и AM/PM задали формат даты соответственно – vadian

ответ

1

Попробуйте установить TimeZone из вашей NSDateFormatter в GMT

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

Как LARME и vadian предложил, если вы хотите 12 для часов использования этого формата

[dateFormatter setDateFormat:@"yyyy-MM-dd 'at' hh:mm:ss a"]; 
Смежные вопросы