2015-09-10 2 views
0

У меня есть время ввода в формате секунд секунд. Мне нужна структура tm из этой эпохи раз в несколько секунд.Эпоха время к структуре преобразования tm в C

struct tm epoch_time; 
    int seconds = 1441852; 
    epoch_time.tm_sec = seconds; 

Моя цель состоит в том, чтобы иметь тм структуру, заполненную соответствующими значениями за годы, месяцы, дни, часы, минуты и секунды в течение заданного времени эпохи в секундах. Любой намек в этом отношении будет полезен. Благодарю.

ответ

1
struct tm epoch_time; 
time_t seconds = 1441852; 
memcpy(&epoch_time, localtime(&seconds), sizeof (struct tm)); 

Предполагается, что вы хотите по местному времени. Если вы хотите GMT, используйте gmtime вместо localtime. Обратите внимание, что это приведет к сбою при ошибке.

+0

'localtime_r' является чище, если доступно. –

+0

@SamuelEdwinWard Договорная. –

+0

Кажется, что вход в localtime() должен быть в миллисекундах, а не в секундах. – Omkar

Смежные вопросы