Разобрать дату из строки в Win32 - PullRequest
3 голосов
/ 24 октября 2008

У меня есть строка, содержащая дату, и еще одна строка, содержащая формат даты первой строки. Есть ли функция, которую я могу вызвать, чтобы преобразовать эту дату во что-то вроде структуры SYSTEMTIME? По сути, я бы хотел, чтобы противоположность GetDateFormat () .

Ответы [ 5 ]

3 голосов
/ 24 октября 2008

Это не совсем то, что вы описали, но я бы начал с COleDateTime::ParseDateTime. Работает с локализованными форматами даты и времени.

2 голосов
/ 24 октября 2008

Нет, но вы можете написать функцию, которая преобразует строку формата даты в строку формата sscanf и серию переменных. Затем скопируйте данные из переменных в структуру SYSTEMTIME и все готово.

Это не тривиально, но, вероятно, это наиболее гибкое соглашение, если вам необходимо поддерживать множество различных форматов даты.

1 голос
/ 24 октября 2008

Если у вас есть система POSIX, вы можете использовать функцию strptime(). К сожалению, MSVC 2005, похоже, не имеет этой функции во время выполнения C; MinGW для Windows делает.

0 голосов
/ 26 октября 2008

Да, просто используйте стандартные API Win32 GDF ()

0 голосов
/ 24 октября 2008

В исходном файле Здесь .

У меня есть функция, которая читает даты в разных форматах, эта функция называется

bool kGUIDate::Setz(const char *datestring)

Это класс, который читает в день / месяц / год, а также обрабатывает часы / минуты / секунды.

Код LGPL, поэтому не стесняйтесь его копировать.

/* formats excepted are: */
/* yyyy-mm-dd */
/* Wdy, DD-Mon-YY HH:MM:SS GMT */
/* Wdy, D Mon YY HH:MM:SS GMT */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...