_get_tzname
Recupera a representação da cadeia de caracteres do nome do fuso horário ou do nome da zona DST (horário de verão padrão).
Sintaxe
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Parâmetros
pReturnValue
O tamanho da cadeia de caracteres de timeZoneName
, incluindo um terminador NULL
.
timeZoneName
O endereço de uma cadeia de caracteres para a representação do nome do fuso horário ou do nome do fuso horário com horário de verão (DST), dependendo de index
.
sizeInBytes
O tamanho da cadeia de caracteres de timeZoneName
em bytes.
index
O index
de um dos dois nomes de fuso horário a serem recuperados.
index |
Conteúdo de timeZoneName |
Valor padrão timeZoneName |
---|---|---|
0 | Nome do fuso horário | "PST" |
1 | O nome do fuso horário com horário de verão | "PDT" |
> 1 ou < 0 | errno definido como EINVAL |
não modificado |
A menos que seja explicitamente atualizado durante o runtime, "PST"
será retornado para o fuso horário padrão e "PDT"
para o fuso horário padrão de horário de verão. Para obter mais informações, confira Comentários.
Não há garantia de que a cadeia de caracteres de fuso horário seja a mesma em diferentes versões do sistema operacional. Os nomes oficiais de fuso horário podem ser alterados e são.
Retornar valor
Zero se for bem-sucedido; caso contrário, um valor de tipo errno
.
Se um dos dois for , ou for zero ou sizeInBytes
menor que zero (mas não ambos), um timeZoneName
manipulador de parâmetros inválido será chamado, conforme descrito em Validação de NULL
parâmetro. Se a execução puder continuar, essa função definirá errno
para EINVAL
e retornará EINVAL
.
Condições de erro
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Retornar valor | Conteúdo de timeZoneName |
---|---|---|---|---|---|
tamanho do nome do FH | NULL |
0 | 0 ou 1 | 0 | não modificado |
tamanho do nome do FH | qualquer | > 0 | 0 ou 1 | 0 | Nome do FH |
não modificado | NULL |
> 0 | qualquer | EINVAL |
não modificado |
não modificado | qualquer | zero | qualquer | EINVAL |
não modificado |
não modificado | qualquer | > 0 | > 1 | EINVAL |
não modificado |
Comentários
A função _get_tzname
recupera a representação da cadeia de caracteres do nome do fuso horário atual ou do nome do fuso horário padrão de horário de verão (DST) no endereço de timeZoneName
dependendo do valor de index
, juntamente com o tamanho da cadeia de caracteres em pReturnValue
. Se timeZoneName
for e for NULL
zero, o tamanho da cadeia de caracteres em bytes necessária para manter o fuso horário especificado e sizeInBytes
um , de terminação NULL
, será retornado em pReturnValue
.
Os valores de index
devem ser 0 para o fuso horário padrão ou 1 para o fuso horário padrão do horário de verão; todos os outros valores têm resultados indeterminados.
Por padrão, "PST"
é retornado para o fuso horário padrão e "PDT"
para o fuso horário padrão do horário de verão. O nome verdadeiro do fuso horário será atualizado na primeira vez em que ele for necessário por uma função que requer informações de fuso horário, como strftime
, ftime
, ftime_s
, mktime
, localtime
, entre outros. Se uma função que não requer informações de fuso horário não for chamada antes da chamada, os valores padrão serão retornados, a menos que você os atualize explicitamente usando uma das funções mencionadas ou por uma chamada _get_tzname
para tzset
. Além disso, se a variável de ambiente TZ
estiver definida, ela terá precedência sobre o nome do fuso horário relatado pelo sistema operacional. Mesmo nesse caso, uma das funções mencionadas acima precisa ser chamada antes de _get_tzname
ser chamado ou o valor de fuso horário padrão será retornado. Para obter mais informações sobre a variável de ambiente TZ
e o CRT, confira _tzset
.
Aviso
Não há garantia de que a cadeia de caracteres de fuso horário seja a mesma em diferentes versões do sistema operacional. Os nomes oficiais de fuso horário podem ser alterados e são.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Exemplo
Este exemplo chama _get_tzname
para obter o tamanho do buffer necessário para exibir o nome de fuso horário padrão de horário de verão atual, aloca um buffer desse tamanho, chama _get_tzname
novamente para carregar o nome no buffer e o imprime no console.
Ele também chama _tzset()
para fazer com que o sistema operacional atualize as informações de fuso horário antes de chamar _get_tzname()
. Caso contrário, os valores padrão são usados.
// crt_get_tzname.c
// Compile by using: cl /W4 crt_get_tzname.c
#include <stdio.h>
#include <time.h>
#include <malloc.h>
enum TZindex {
STD,
DST
};
int main()
{
size_t tznameSize = 0;
char * tznameBuffer = NULL;
_tzset(); // Update the time zone information
// Get the size of buffer required to hold DST time zone name
if (_get_tzname(&tznameSize, NULL, 0, DST))
{
return 1; // Return an error value if it failed
}
// Allocate a buffer for the name
if (NULL == (tznameBuffer = (char *)(malloc(tznameSize))))
{
return 2; // Return an error value if it failed
}
// Load the name in the buffer
if (_get_tzname(&tznameSize, tznameBuffer, tznameSize, DST))
{
return 3; // Return an error value if it failed
}
printf_s("The current Daylight standard time zone name is %s.\n", tznameBuffer);
return 0;
}
Saída
The current Daylight standard time zone name is Pacific Daylight Time.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_get_tzname |
<time.h> |
Para obter mais informações, consulte Compatibilidade.
Confira também
Gerenciamento de tempo
errno
, _doserrno
, _sys_errlist
e _sys_nerr
_get_daylight
_get_dstbias
_get_timezone
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de