Можно ли использовать STD :: Chrono для создания типа DateTime, который не связан с определенными часами или реализациейC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Можно ли использовать STD :: Chrono для создания типа DateTime, который не связан с определенными часами или реализацией

Сообщение Anonymous »

Я пытаюсь выяснить, как использовать std :: chrono для создания и манипулирования типом DateTime.
В частности, мне нужен какой -то тип Храните тип DateTime. Ввод и вывод моей программы будут данные о формате JSON. JSON используется для сериализации данных при отправке и получении данных из сети. tl; dr , потому что мне нужен какой -то тип или структура, которая может хранить тип DateTime, и мне нужно иметь возможность конвертировать между этим типом и std :: string type . < /p>

Для этого вопроса будет последовательным, мне нужно предоставить немного контекста. < /p>
Чтобы просмотреть ситуацию : < /p>
  • Я работаю над системой Linux. Linux поддерживает два вида часов. Существует clock_realtime , а clock_monotonic . (Есть и другие в дополнение к этому, но это интересные.) К часов можно получить доступ, вызывая функцию clock_gettime . Это обсуждает ОС и возвращает значение часов для выбранного типа часов. Я не уверен, как именно эти карты в базовых часах Linux. Я предполагаю, что std :: chrono :: system_time - это clock_realtime , а std :: chrono :: atempore_clock - это clock_monotonic .
    clock_monoton >
  • Есть и другие типы часов в std :: chrono . Я не знаю, к чему они отображаются. Может быть, некоторые из них не сопоставляются ни на одну функцию clock_gettime вообще. что другие операционные системы обеспечивают аналогичные типы часов, предоставленных Linux. Я не ожидаю, что реализация часов, содержащихся в STD :: Chrono , будет вести себя одинаково на разных платформах. Например, некоторые платформы могут иметь только один тип функции «Часовой получение времени». Существует функция :: now () , которая возвращает текущее время, используя то, что является соответствующей базовой реализацией. > Функция - это std :: chrono Библиотека эквивалент более низкого уровня clock_gettime . (Или что -то в этом роде эквивалентно для других платформ. Например: Windows будет иметь какую -то другую функцию, она, вероятно, не называется clock_gettime < /code>.) < /Li>
    < /ul>

    Вот где начинается моя путаница. Это нужно что -то, что подключено к конкретной реализации функции clock_gettime ?

    имеет ли std :: chrono < /code> тип часов, у которого нет реализации now () < /code>? < /li>
    < /ul>
    Чтобы вернуться к первым нескольким параграфам в этом вопросе, я хочу написать какой -то код, который преобразует представление строки DateTime в некоторый тип C ++. < /p>
    например < /p>

    Код: Выделить всё

    2025-02-09T15:39:00.123456789+0000 // example
    
    Я думаю, что способ сделать это, чтобы преобразовать эту строку в std :: chrono :: time_point .
    Однако, time_point - это шаблонный класс, который требовал какого -то какого -то класса часов . /ен.cppreference.com/w/cpp/chrono/time_point
, похоже, не имеет большого смысла использовать steady_clock или System_clock здесь, поскольку оба из них подключены к конкретной реализации функции how () с базовой реализацией clock_gettime .
Поместить Другой способ, если бы я использовал один из этих вариантов, не существует разумного способа выбора между ними. < /p>
Я понял все здесь правильно? Мне интересно, что, возможно, я что -то неправильно понял, и, возможно, это источник моей путаницы.

Подробнее здесь: https://stackoverflow.com/questions/794 ... not-linked
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»