Как получить короткую строку формата даты из текущей локали в C / C ++? - PullRequest
0 голосов
/ 04 февраля 2019

Следующий код (Windows, C ++) устанавливает текущую локаль и получает отформатированную строку короткой даты, отформатированную в соответствии с форматом короткой даты локали "% c".

  time_t rawtime;
  struct tm * timeinfo;
  char buffer [80];

  time (&rawtime);
  timeinfo = localtime (&rawtime);

  strftime (buffer,80,"%c",timeinfo);

Скажите, что это дает "31 /01/2012 "на указанную дату и локаль.Это соответствует формату даты "% d /% m /% Y", хотя было указано "% c".

Есть ли способ получить саму строку формата, то есть "% d /% m /% Y "для данной локали?

1 Ответ

0 голосов
/ 04 февраля 2019

В langinfo есть вызов, чтобы сделать это

как простую демонстрацию

#include <stdio.h>
#include <langinfo.h>

int main()
{
    printf("%s\n", nl_langinfo( D_FMT ) );
}

Если ваш компилятор C не совместим с POSIX, и я подумал, что Windows должна быть, тогдавозможно, ответы на этот вопрос были бы скорее руководством

Как правильно получить LOCALE_SSHORTDATE, который гарантированно имеет полный (4-значный) номер года?

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