Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2

Как переконвертировать время из unix epoch формата в понятную дату и время?

20.03.2015, 15:40. Показов 4375. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане!
Не могу нигде найти адекватного решения обратной конвертации из формата unix epoch в человекочитабельную форму! Есть дата, не обязательно текущая (в большинстве решений проблема решается именно с использованием текущего ремени), решение необходимо с использованием С или С++, возможно Objective-c, но с помощью библиотеки Core Foundation. Приведите пример, или скиньте ссылочку, если я что-то упустила, не нашла. Буду вам очень благодарна!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2015, 15:40
Ответы с готовыми решениями:

Как получить текущее Текущее Unix epoch время в милисекундах?
Хочу получить через эксель выписку егрюл egrul.nalog.ru Общий порядок такой: 1) Отправляю ПОСТ запрос на адрес https://egrul.nalog.ru/ ...

Как перевести Unix время в дату?
Нужно написать программу на С++, которая получит время в формате Unix-время и выведет дату и время. В коде можно использовать только...

Как получить дату и время своего (пользовательского формата)
Всем привет. Подскажите. как получить. дату и время. своего(пользовательского формата). 00.00.1900, 00:00

11
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
20.03.2015, 15:58
Что-за... Сторонние либы вообще для этого не нужны...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
  char str[32];
 
  time_t now = time(NULL);
 
  strftime(str, sizeof(str), "%d-%m-%Y %H:%M:%S", localtime(&now));
 
  printf("%s\n", str);
 
  return 0;
}
1
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2
20.03.2015, 16:07  [ТС]
Спасибо за ответ! Core Foundation - это не просто сторонняя либа, а библиотека языка Objective-c. И если бы вы кодили под MAC, но при этом не знали Objective-c, наиболее удобным для вас являлся бы Core Foundation Framework, так как он более понятен для С-кодеров.
0
20.03.2015, 16:36

Не по теме:

Цитата Сообщение от nymphaea Посмотреть сообщение
И если бы вы кодили под MAC, но при этом не знали Objective-c, наиболее удобным для вас являлся бы Core Foundation Framework, так как он более понятен для С-кодеров.
Ок, поверю на слово.

0
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2
20.03.2015, 19:45  [ТС]
Вот, что у меня получилось. Насколько я поняла, в вашем примере тоже бралось локальное время (текущее) и переводилось в нормальный формат. Мне же нужно было конвертнуть дату и время, например, вчерашние. Для моего случая, мне пришлось привести число типа double со временем в формате unix epoch к типу time_t, чтобы потом это время использовать в функции strftime(...):

C++
1
2
3
4
5
    void unixEpochDateToReadableDate(double unixTimeRep, char bufForTime[])
    {
        time_t now = static_cast<time_t>(unixTimeRep);
        strftime(bufForTime, 100, "%d-%m-%Y %H:%M:%S", localtime(&now));
    }
Добавлено через 1 час 23 минуты
P.S.: Но, как говорится, "вот это поворот!" Данный код не будет правильно работать на MAC OS X, потому что абсолютное время в этой системе вычисляется не как у всех нормальных людей. В Линуксе - это число секунд с 01/01/1970 00:00:00. А в Маке: число секунд с 01/01/2001 00:00:00. Вот и как теперь жить?!
0
 Аватар для mokojumbot
160 / 160 / 30
Регистрация: 09.11.2012
Сообщений: 1,008
21.03.2015, 00:15
nymphaea,
Bash
1
gcc -dM -E - < /dev/null | sort
далее что-то типа
C
1
2
3
4
5
#if __apple__
   something_for_mac();
#elif __linux__
   something_for_linux();
#endif
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
22.03.2015, 20:46
nymphaea, стоп стоп стоп. Речь шла о
Цитата Сообщение от nymphaea Посмотреть сообщение
конвертации из формата unix epoch в человекочитабельную форму
unix epoch и есть
Цитата Сообщение от nymphaea Посмотреть сообщение
01/01/1970
Решение вам было дано. Это первое. Второе: предоставленное мной решение опирается на функционал стандартной библиотеки языка си. Так что в таком виде оно должно работать под всеми осями. Принимая во внимание вышесказанное, давайте пойдем сначала.
1) Как звучит задача?
2) Что мы имеем и в каком виде?
0
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2
24.03.2015, 10:35  [ТС]
Да, спасибо. Решение действительно было дано. Однако, когда стала тестировать, увидела, что снова что-то не так. Стала копать глубже, и выяснила, что у МАКа это самое UNIX EPOCH на самом деле MAC Absolute Time и считается с 01/01/2001. Суть его вычисления та же - в секундах. Только на 31 год позже. И убило то, что все стандартные функции Objective-c под MAC устарели, что не даёт возможности вычислить время с помощью них. Надо изворачиваться как-то по-другому.
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
24.03.2015, 11:30
nymphaea, итак, давайте пойдем сначала. Нужна конкретика.
1) Что вам надо сделать?
2) Что дано?
3) В каком виде это самое дано?
4) В каком виде надо представить результат?
0
 Аватар для nymphaea
9 / 2 / 0
Регистрация: 04.07.2013
Сообщений: 97
Записей в блоге: 2
24.03.2015, 12:48  [ТС]
HighPredator, пишу подробно:
1) нужно переконвертировать в человекочитаемый формат время из формата (как выяснилось) MAC Absolute Time, который отличается от Unix Epoch Time на 31 год
2) дано время, записанное в переменной типа double в формате MAC Absolute Time - время в секундах с 01/01/2001 00:00:00 до какой-либо даты (не текущее время)
3) результат нужен в виде строки: "%d-%m-%Y %H:%M:%S"
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
24.03.2015, 13:30
Цитата Сообщение от nymphaea Посмотреть сообщение
дано время, записанное в переменной типа double
Какая функция вернула вам время в таком типе данных? Соответствует ли оно числу миллисекунд с
Цитата Сообщение от nymphaea Посмотреть сообщение
01/01/2001 00:00:0
?
0
599 / 421 / 136
Регистрация: 02.10.2008
Сообщений: 1,796
Записей в блоге: 1
24.03.2015, 20:49
Не могу понять в чём проблема-то:
http://www.opennet.ru/man.shtm... &russian=0
https://developer.apple.com/li... ime.3.html
Где ангельским по белому написано, что localtime() возвращает struct tm *, описание структуры в обоих случаях идентично. Это же POSIX - иначе и быть не может...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2015, 20:49
Помогаю со студенческими работами здесь

Как получить текущую дату и время формата 12.12.2004_15:46?
как получить текущую дату и время формата 12.12.2004_15:46

Получить текущую дату и время в формате UNIX Timestamp
Ребят, подскажите как получить текущую дату в формате секунд, а затем вновь конвертировать в нужный формат.

Преобразование формата: число в дату и время
Здравствуйте. Имею в БД, в одной колонке тип данных: 41597,0179615509 41597,1092185185 41597,1181430671 При копировании колонки...

Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать изображени
Написать скрипт, содержащий текущее время и дату в текстовых полях время и дата. Попробуйте создать изображение работающих часов

Как перевести время в Unix формат
Как перевести строку вида: $var = '1m2w4d6h52m15s'; 1. в секунды? 2. в &quot;1 месяц 2 недели 3 дня 6 часов 52 минуты 15 секунд&quot;? ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru