Вход : строки с датой и необязательным временем. Различные представления были бы хороши, но необходимы. Строки предоставляются пользователем и могут быть искажены. Примеры:
«2004-03-21 12:45:33»
(я считаю это макетом по умолчанию) «2004/03/21 12:45:33»
(необязательный макет) «23.09.2004 04:12:21»
(немецкий формат, необязательно) «2003-02-11»
(время может отсутствовать) Необходимые выходные данные : Секунды с начала Эпохи (01.01.1970 00:00:00) или какой-либо другой фиксированной точки.
Бонус : Кроме того, было бы здорово читать смещение UTC местного системного времени.
Ввод Предполагается, что это местное время на рассматриваемой машине. Строки предоставляются пользователем и могут быть искажены. Примеры:
«2004-03-21 12:45:33»
(я считаю это макетом по умолчанию) «2004/03/21 12:45:33»
(необязательный макет) «23.09.2004 04:12:21»
(немецкий формат, необязательно) «2003-02-11»
(время может отсутствовать) Необходимые выходные данные : Секунды с начала Эпохи (01.01.1970 00:00:00) или какой-либо другой фиксированной точки.
Бонус : Кроме того, было бы здорово читать смещение UTC местного системного времени.
Ввод Предполагается, что это местное время на рассматриваемой машине. Строки предоставляются пользователем и могут быть искажены. Примеры:
«2004-03-21 12:45:33»
(я считаю это макетом по умолчанию) «2004/03/21 12:45:33»
(необязательный макет) «23.09.2004 04:12:21»
(немецкий формат, необязательно) «2003-02-11»
(время может отсутствовать) Необходимые выходные данные : Секунды с начала Эпохи (01.01.1970 00:00:00) или какой-либо другой фиксированной точки.
Бонус : Кроме того, было бы здорово читать смещение UTC местного системного времени.
Ввод Предполагается, что это местное время на рассматриваемой машине. Вывод должен быть в формате UTC. Система - только Linux (необходимы Debian Lenny и Ubuntu).
Я пробовал использовать boost / date_time
, но должен признать, что не могу осмыслить документацию. Следующее работает без необходимого преобразования системного местного времени в UTC:
std::string date = "2000-01-01";
boost::posix_time::ptime ptimedate = boost::posix_time::time_from_string(date);
ptimedate += boost::posix_time::hours(Hardcoded_UTC_Offset);// where to get from?
struct tm = boost::posix_time::to_tm(ptimedate);
int64_t ticks = mktime(&mTmTime);
Я думаю, что boost :: date_time
может предоставить необходимое смещение UTC, но я не знаю как.