Win32: существуют GetDateFormat и GetTimeFormat. GetDateTimeFormat? - PullRequest
4 голосов
/ 12 марта 2010

я знаю, что Win32 имеет функцию Nls GetDateFormat , например:

GetDateFormat(…, …, …, "dddd','MM','y", …, …);

и имеет GetTimeFormat , например:

GetTimeFormat(…, …, …, "tt ss':'hh':'mm", …, …);

Но есть ли способ форматировать оба сразу, например:

GetDateTimeFormat(…, …, …, "tt dddd' - 'ss':'y';'hh':'mm MM", …, …);

Примечание: Строка формата специально создана для демонстрации того, что не все строки формата линейно разделимы.

1 Ответ

2 голосов
/ 25 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...