Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/41: Рейтинг темы: голосов - 41, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 10.05.2012
Сообщений: 91
1

Перевод времени в формат UNIXTIME и обратно

26.07.2013, 20:02. Просмотров 8385. Ответов 8
Метки нет (Все метки)

Добрый день!
Есть ли у кого пример алгоритма или описания функций перевода даты (год, месяц....минута, секунда) в формат UNIXTIME и обратно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2013, 20:02
Ответы с готовыми решениями:

Перевод метки времени в Long unixtime
Всем доброго! Существует ли простая возможность перевести время из: 2019-12-03T11:47:36+03:00 в...

Конвертация времени в американский формат и обратно
есть задача: создать класс Time, в котором реализованы операции сложения, вычитания, сравнения,...

Перевод времени из unix timestamp в формат даты (д/м/г)
Есть некоторое зашифрованное число, к примеру, 1804370930, оно содержит дату(день,месяц, год). Как...

Перевод количества секунд в нормальный формат времени
Проблема такая: есть количество секунд, например, 6000 сек, а надо получить время в формате...

8
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 67
16.08.2013, 20:58 3
Моя библиотека для работы с RTC на STM32. Там есть необходимые тебе функции:

Код
void         rtc_decode(uint32_t value, _type_datetime * dt);      //преобразовать секунды (RTC_Tick) в дату и время
uint32_t   rtc_code(_type_datetime *dt);                               //преобразовать дату и время в секунды (RTC_Tick)
dt - это структура:
Код
/структура хранения даты и времени
typedef struct
{
uint16_t year;          //год     (xxxx)
uint8_t month;          //месяц   (1-12)
uint8_t day;            //день    (1-31)
uint8_t hour;           //часы    (0-23)
uint8_t min;            //минуты  (0-59)
uint8_t sec;            //секунды (0-59)
uint8_t dow;            //день недели 0 = воскресенье, 1 = понедельник, .... 6 = суббота.
} _type_datetime;
[3.3 Кб]
0
1 / 1 / 0
Регистрация: 03.02.2016
Сообщений: 46
28.12.2016, 14:38 4
Цитата Сообщение от MioMoki
Моя библиотека для работы с RTC на STM32. Там есть необходимые тебе функции:
Нужно было быстро перевести дату и время в UmyxTime, воспользовался выложенной библиотекой - все получилось.
Автору спасибо!

З.Ы. Прошу прощения за некропостинг.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
28.12.2016, 15:43 5
Я извиняюсь, но что-то не увидел в примере файлика tzdata. Без него вычисленный UNIX time будет отличаться от реального на несколько секунд!
0
1 / 1 / 0
Регистрация: 03.02.2016
Сообщений: 46
29.12.2016, 03:11 6
Цитата Сообщение от Iddy_Im
Я извиняюсь, но что-то не увидел в примере файлика tzdata. Без него вычисленный UNIX time будет отличаться от реального на несколько секунд!
А для чего он нужен?
0
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
29.12.2016, 04:02 7
tzdata - информация о часовых поясах. Без него или время указывать UTC или вручную добавлять смещение.

И нет, ошибки на несколько секунд не будет - UNIX-время не учитывает високосные секунды.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
29.12.2016, 09:32 8
Цитата Сообщение от div
UNIX-время не учитывает високосные секунды.
Черт! И действительно! А я-то, ниивный, свято верил, что разница двух UNIX Time даст временнoй промежуток между событиями (юлианская дата для этого не годится, т.к. тоже високосные секунды не учитывает)!
Это ж как теперь разницу во времени-то считать?
0
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
31.12.2016, 22:52 9
Время - слишком сложная и нелинейная штука, что бы придумать одно универсальное решение для всех проблем. Достаточно посмотреть, что там навертели с UT0, UT1 и компанией. И ведь не от того, что у придумавших это ума не хватило - просто вопрос действительно сложный.

Для себя делаю так. Если надо точно отмерять небольшие промежутки - то считаю время от старта. Для МК - свой 32-битные счетчик секунд, для Линукса - clock_gettime(CLOCK_MONOTONIC, ).

Если надо считать время на больших интервалах - то UTC и забиваю на високосные секунды.

Другие случаи мне не попадались. Если попадутся, то придется что-нибудь придумывать по ситуации.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2016, 22:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

JAVA + freemarker формат Unixtime в дату
Доброго времени суток. В общем получаю дату в формате Unixtime. Как в freemarker перевести в дату....

Цикл по числу файлов. Перевод времени из DD.MM.YYYY hh:mm:ss в числовой формат
Добрый вечер всем! Вопрос по названию темы собственно. Есть масса файлов c заголовками вида...

Перевод из UnixTime в обычное время
Как можно перевести из unix в обычное время?

Как преобразовать формат String в формат времени?
Dim time1 As date Dim time2 As Date Dim totaltime As Date Dim str As String str = "SELECT...

Формат \u туда и обратно
Добрый день. Вопрос такой: есть некий текст формата \u, необходимо его перевести в нормальный вид...

String.Format из текста в денежный формат и обратно
Господа, чего-то я запутался в форматировании. Помогите пожалуйста разобраться. Дано: Цена...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.