Строка для датирования преобразования для UNIX?

У меня есть строка 26.07.2010 18:37:12, и я хочу преобразовать ее в формат даты так, чтобы я мог сравнить ее с другими строками и проверить, является ли дата (26.07.2010 18:37:12) ранее или нет.

Кто-либо мог предложить способ преобразовать эту строку до настоящего времени?

1
задан Jonathan Leffler 27 July 2010 в 00:56
поделиться

2 ответа

Прелесть нотации ISO 8601, которую вы показываете, заключается в том, что сравнение строк между двумя датами сообщает вам относительный порядок. Поскольку все даты, которые вам нужно сравнить, относятся к AD (или CE), а не к BC (или BCE) и выражены в одном часовом поясе, это тривиально:

2010-07-26 18:37:12  >  2001-10-31 15:36:21
2010-07-26 18:37:12  <  2010-12-25 00:00:00

Если вам нужно иметь дело с другими форматами даты, тогда strptime () - ваш друг.

У меня есть программа (образно названная strptime ), которая выполнит эту работу (см. Мой профиль, чтобы связаться со мной); для этого, вероятно, есть другие инструменты. Однако даже strptime () имеет некоторые проблемы с часовыми поясами, особенно с именованными часовыми поясами, а не с чисто числовыми смещениями.

0
ответ дан 2 September 2019 в 22:43
поделиться

Функция strptime - это то, что вам нужно

man strptime

Для вашего примера

struct tm stm;
strptime(string, "%Y-%m-%d %H:%M:%s", &stm);
2
ответ дан 2 September 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: