Я пытаюсь выяснить, как использовать 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>
Я думаю, что способ сделать это, чтобы преобразовать эту строку в std :: chrono :: time_point .
Однако, time_point - это шаблонный класс, который требовал какого -то какого -то класса часов . /ен.cppreference.com/w/cpp/chrono/time_point
, похоже, не имеет большого смысла использовать steady_clock или System_clock здесь, поскольку оба из них подключены к конкретной реализации функции how () с базовой реализацией clock_gettime .
Поместить Другой способ, если бы я использовал один из этих вариантов, не существует разумного способа выбора между ними. < /p>
Я понял все здесь правильно? Мне интересно, что, возможно, я что -то неправильно понял, и, возможно, это источник моей путаницы.
Я пытаюсь выяснить, как использовать std :: chrono для создания и манипулирования типом DateTime. В частности, мне нужен какой -то тип Храните тип DateTime. Ввод и вывод моей программы будут данные о формате JSON. JSON используется для сериализации данных при отправке и получении данных из сети. [b] tl; dr [/b], потому что мне нужен какой -то тип или структура, которая может хранить тип DateTime, и мне нужно иметь возможность конвертировать между этим типом и std :: string type . < /p>
Для этого вопроса будет последовательным, мне нужно предоставить немного контекста. < /p> Чтобы просмотреть ситуацию : < /p> [list] [*] Я работаю над системой 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> [code]2025-02-09T15:39:00.123456789+0000 // example [/code] Я думаю, что способ сделать это, чтобы преобразовать эту строку в std :: chrono :: time_point . Однако, time_point - это шаблонный класс, который требовал какого -то какого -то класса часов . /ен.cppreference.com/w/cpp/chrono/time_point [/list] , похоже, не имеет большого смысла использовать steady_clock или System_clock здесь, поскольку оба из них подключены к конкретной реализации функции how () с базовой реализацией clock_gettime . Поместить Другой способ, если бы я использовал один из этих вариантов, не существует разумного способа выбора между ними. < /p> Я понял все здесь правильно? Мне интересно, что, возможно, я что -то неправильно понял, и, возможно, это источник моей путаницы.