2010-07-26 3 views
1

У меня есть строка 2010-07-26 18:37:12, и я хочу преобразовать ее в формат даты, чтобы я мог сравнить ее с другими строками и проверить, является ли дата (2010-07-26 18:37:12) раньше или нет.Преобразование String to Date для UNIX?

Может ли кто-нибудь предложить способ конвертировать эту строку на сегодняшний день?

+0

Какой язык программирования/среда? – bakkal

+0

Скорее всего C, поэтому UNIX. –

+1

Если так, то: http://stackoverflow.com/questions/1002542/how-to-convert-datetime-to-unix-timestamp-in-c – bakkal

ответ

2

Функция strptime является то, что вы хотите

man strptime 

Для примера

struct tm stm; 
strptime(string, "%Y-%m-%d %H:%M:%s", &stm); 
0

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

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() есть некоторые проблемы с часовыми поясами - особенно называемыми часовыми поясами, а не чисто цифровыми смещениями.

Смежные вопросы