Я рассматривал this и this, на SO, но они имеют дело с вариациями не-С той же проблемой.Начала Сокращенного часового пояса с помощью STRFTIME() с помощью C
Использование GNU GCC компилятор (Code :: Blocks, в Windows) со следующим кодом:
int main(void)
{
time_t rawtime;
struct tm *info;
char timeStr[80];
time(&rawtime);
info = localtime(&rawtime);
strftime(timeStr,80,"%a %b %d %H:%M:%S %Z %Y", info);
printf("%s", timeStr);
getchar();
return 0;
}
Я получаю эту строку времени:
Tue Aug 30 14:55:08 Pacific Daylight Time 2016
Все в порядке, кроме часового пояса. Я предпочитаю, чтобы быть сокращен, такими как:
вт 30 августа 14:55:08 PDT 2016
В каждой странице человека или окно документации STRFTIME() я могу найти описание спецификатора формата% Z выглядит примерно так: имя часового пояса или аббревиатура. (eg. here.)
Какая уловка для форматирования часового пояса сокращается?
«Среднее время по Гринвичу» * сокращено до «GMT», но мы никогда не видим «GMTDT». –
Вы посмотрели, что Microsoft говорит о его ['strftime()') (https://msdn.microsoft.com/en-us/library/aa272978 (v = vs.60) .aspx)? Является ли ваш компилятор настроен на сборку с библиотеками времени выполнения Microsoft C или некоторыми другими библиотеками времени выполнения C? –
@WeatherVane - LOL, хороший момент. Я вижу временные метки, исходящие от устройства, которое я использую, используя Linux как OS, у которого есть сокращенный часовой пояс. Возможно, это конкретная реализация? – ryyker