Есть строка которая представляет собой дату-время в текущей локали. Как из этой даты я могу получить ее числовое значение.
Например в Windows есть тип
_variant_t
, c помощью которого можно решить эту задачу так:
std::wstring wstr("01/01/2015");
_variant_t src(str.c_str());
_variant_t dest;
::VariantChangeType( &dest, &src, 0, VT_DATE )
И в этом случае не нужно указывать какой формат строки я подаю. Как это можно сделать кросс-платформенным способом? В идеале с помощью стандартной библиотеки. Необязательно в
VT_DATE
, подходит любой числовой тип.
Можно еще получить формат даты-времени у системы, но как это сделать? Есть функция
localeconv()
она позволяет получить специфичные для локали вещи: десятичный разделитель, денежный знак и так далее, но вот формата времени там нет.