Как вы получаете отформатированную дату и время для текущей локали в C?

StackOverflow https://stackoverflow.com/questions/2778375

Вопрос

Какую функцию C я должен позвонить, чтобы получить отформатированную дату и время для локали, где выполняется программа?

Я задаю этот вопрос, потому что я столкнулся с проблемой, используя API Clamav Daemon. То VERSION Команда возвращает дату и время последних определений вирусов, но код использует вызов ctime отформатировать его. Насколько я могу сказать ctime Не отформатирует DateTime в соответствии с текущей локалий и использует английские сокращения в течение нескольких дней недели и месяце в возвращенной строке. Это вызывает проблемы, как моя программа Java, которая использует API Clamav API делает Уважайте текущую локаль и, таким образом, рассчитывают за день недели и месяца, чтобы иметь местные сокращения.

Формат данных DateTime должен быть в том же формате, что и производится Ctime.:

Www mmm dd hh: мм: ss yyyy

Где www - это будний день, ммм месяц в письмах, дд день месяца, ч.х: мм: SS Time, а Yyyy год.

Я мог бы переписать программу Java, чтобы всегда предположить, что английские даты, но я был бы счастливее, чтобы отправить патч для Clamav, как это похоже на борту на их стороне.

Это было полезно?

Решение

strftime("%c", ... Должна дать вам предпочтительный представитель даты и времени для текущей локали. Или (все еще с strftime) вы можете эмулировать ctimeформат, но с %b Для сокращения месяца текущего языка, %a Для сокращения текущего месторождения в будние дни, и так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top