Какую функцию C следует вызвать, чтобы получить отформатированную дату и время для локали, в которой выполняется программа?
Я задаю этот вопрос, потому что столкнулся с проблемой при использовании API демона ClamAV. Команда VERSION
возвращает дату и время последних описаний вирусов, но код использует вызов ctime
для форматирования. Насколько я могу судить, ctime
не форматирует дату и время в соответствии с текущей локалью и использует английские сокращения для дней недели и месяца в возвращаемой строке. Это вызывает проблемы, поскольку моя Java-программа, использующая ClamAV API, действительно учитывает текущую локаль и, таким образом, ожидает, что день недели и название месяца будут иметь местные сокращения.
Формат даты и времени должен быть в том же формате, что и ctime:
Www Ммм дд чч:мм:сс гггг
Где Www — день недели, Mmm — месяц буквами, dd — день месяца, hh:mm:ss — время, а yyyy — год.
Я мог бы переписать Java-программу, чтобы всегда использовать английские даты, но я был бы счастлив отправить исправление в ClamAV, поскольку мне это кажется ошибкой на их стороне.