Domingo 14 Agosto 2022

Condição: INVREQ

 

Este comando é threadsafe.

Descrição:

FORMATTIME transforma a data e hora absolutas em qualquer um de uma variedade de formatos. Normalmente, o argumento ABSTIME é o valor retornado por um comando ASKTIME ABSTIME.

Para obter um tempo decorrido em um formato específico, o valor de dados ABSTIME pode ser a diferença entre dois valores retornados por ASKTIME, e opções como DAYCOUNT (d) e TIME (t) podem ser especificadas.

Quando você usa a opção DATESTRING para solicitar uma string de carimbo de data e hora arquitetada que requer que a hora do relógio seja UTC, o CICS® calcula o deslocamento de fuso horário necessário a partir do valor ABSTIME fornecido, que está no horário local, e produz a data e hora string de carimbo em UTC. Todos os outros valores retornados pelo comando FORMATTIME, como o valor TIME, são retornados na hora local. Portanto, é normal para o comando FORMATTIME produzir uma string de carimbo de data e hora arquitetada mostrando uma data e hora, e retornar outros valores mostrando outra data e hora, para o mesmo valor ABSTIME fornecido.

Opções:

ABSTIME ( área de dados )

Especifica a área de dados para o número de milissegundos desde 00:00 em 1 de janeiro de 1900, que é conhecido como hora absoluta. A hora é obtida do relógio de hora do dia do sistema, ajustada para segundos intercalados e para aplicar o deslocamento de fuso horário local (incluindo o horário de verão), truncada em milissegundos e retornada como um decimal compactado de 8 bytes de comprimento. Você pode usar FORMATTIME para alterar os dados em outros formatos familiares.

O formato do parâmetro é:

COBOL:  PIC S9(15) COMP-3

C:      char data_ref[8];

PL/I:   FIXED DEC(15);

ASM:    PL8

DATA ( área de dados )

Especifica a variável que deve receber a data no formato especificado no parâmetro de inicialização do sistema DATFORM. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres. Você normalmente usa esta opção apenas quando uma data é necessária para fins de saída. Quando uma data for necessária para análise, solicite a data de forma explícita; por exemplo, usando a opção MMDDAA.

FORMULÁRIO DE DATA ( área de dados )

Especifica o formato da data definida pela instalação. CICS retorna YYMMDD, DDMMYY ou MMDDYY (seis caracteres) de acordo com o parâmetro de inicialização do sistema DATFORM.

DATESEP ( dados-valor )

Especifica o caractere a ser inserido como separador entre o ano e o mês e entre o dia e o mês; ou entre o ano e o dia, se o formato YYDDD for especificado.

Se você omitir esta opção, nenhum separador será fornecido. Se você omitir o valor dos dados , uma barra ( / ) é considerada o separador.

DATE STRING (área de dados)

Especifica o campo do usuário de 64 caracteres em que o CICS retorna a sequência de carimbo de data e hora arquitetada no formato especificado pela opção STRINGFORMAT. Se STRINGFORMAT não for especificado, o formato padrão fornecido é o formato RFC 1123 (RFC1123). Se você estiver usando a opção DATESTRING, execute primeiro o comando ASKTIME ABSTIME para obter um valor para a opção ABSTIME. Se o valor para a opção ABSTIME for de qualquer outra origem, a sequência de registro de data e hora arquitetada que é retornada pelo comando FORMATTIME pode estar incorreta.

DAYCOUNT ( área de dados )

Retorna o número de dias desde 1º de janeiro de 1900 (dia 1), como um número binário de palavra inteira. Esta função é útil se você precisar comparar a data atual com uma data anterior que foi, por exemplo, armazenada em um conjunto de dados.

DAYOFMONTH ( área de dados )

Retorna o número do dia no mês como um número binário de palavra inteira.

DAYOFWEEK ( área de dados )

Retorna o número relativo do dia da semana como um número binário de palavra inteira: Domingo = 0, Sábado = 6. Esse número pode ser convertido em uma forma textual do dia em qualquer idioma.

DDMMAA ( área de dados )

Especifica o campo do usuário de 8 caracteres em que o CICS retorna a data, no formato dia / mês / ano; por exemplo, 21/10/98. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres.

DDMMAAAA ( área de dados )

Especifica o campo do usuário de 10 caracteres em que o CICS retorna a data, no formato dia / mês / ano; por exemplo, 17/06/1995. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 10 caracteres.

FULLDATE (área de dados)

Especifica o campo do usuário de 10 caracteres em que o CICS retorna a data, no formato especificado no parâmetro de inicialização do sistema DATFORM, com o ano expandido para quatro dígitos. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 10 caracteres. Você normalmente usa esta opção apenas quando uma data é necessária para fins de saída. Quando uma data for necessária para análise, solicite a data de forma explícita, por exemplo, usando a opção MMDDAAAA.

MILISSEGUNDOS ( área de dados )

Retorna o número de milissegundos no segundo atual especificado por ABSTIME, como um número inteiro binário no intervalo de 0 a 999.

MMDDAA ( área de dados )

Especifica o campo do usuário de 8 caracteres no qual o CICS retorna a data, no formato mês / dia / ano; por exemplo, 21/10/95. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres.

MMDDAAAA ( área de dados )

Especifica o campo do usuário de 10 caracteres em que o CICS retorna a data, no formato mês / dia / ano; por exemplo, 21/11/1995. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 10 caracteres.

MONTHOFYEAR ( área de dados )

data-area é definida como o número relativo do mês do ano como um número binário de palavra inteira (janeiro = 1, dezembro = 12). Você pode converter esse número, em seu programa de aplicação, para o nome do mês em qualquer idioma.

FORMATO DE STRING (cvda)

Especifica o formato da string de carimbo de data e hora arquitetada retornada em DATESTRING. Os valores CVDA são:

RFC1123

Especifica o formato RFC 1123, que é adequado para uso em mensagens HTTP. Essa string de carimbo de data e hora contém o dia, a data e a hora do relógio de 24 horas, por exemplo “ Ter, 01 de abril de 2003 10:01:02 +0000 ” . Este formato não inclui milissegundos e o número de segundos é truncado.

RFC3339

Especifica o formato RFC 3339, também conhecido como tipo de dados XML dateTime. Este formato é uma implementação de um subconjunto do padrão ISO 8601. Um exemplo de carimbo de data e hora neste formato é 2003-04-24T10: 01: 02 + 00: 00. Os carimbos de data e hora neste formato estão em UTC (Coordinated Universal Time). Esta string de carimbo de data e hora contém a data e o relógio de 24 horas. O deslocamento de fuso horário (-12: 00 a +12: 00) é indicado no final do carimbo de data e hora.

A especificação RFC 3339 permite que a letra Z seja usada para um deslocamento de zero (+00: 00). Uma fração decimal de um segundo no relógio de 24 horas é opcional na especificação e o comando FORMATTIME não a inclui. Um exemplo de carimbo de data / hora mostrando a fração decimal de um segundo e a letra Z para um deslocamento de zero é 2003-04-01T10: 01: 02.498Z. Se quiser adicionar a fração decimal de um segundo usando seu aplicativo, você pode usar a opção MILISSEGUNDOS para retornar o número de milissegundos que também passaram.

STRINGZONE (cvda)

Especifica o fuso horário no qual o registro de data e hora retornado em DATESTRING deve ser retornado. Os valores CVDA são:

UTC

DATESTRING deve ser retornado em UTC. Esta é a configuração padrão.

LOCAL

DATESTRING deve ser retornado no fuso horário LOCAL.

TIME ( área de dados )

data-area é definida como um campo de 8 caracteres para o relógio atual de 24 horas no formato hh: mm: ss, onde o separador é especificado pela opção TIMESEP. O número de segundos é truncado. Use a opção MILLISECONDS para retornar o número de milissegundos que também passaram.

TIMESEP ( valor de dados )

Especifica o caractere a ser usado como separador na hora retornada. Se você omitir esta opção, nenhum separador será assumido e 6 bytes serão retornados em um campo de 8 caracteres. Se você omitir data-value , dois pontos (:) são usados ​​como separador.

ANO ( área de dados )

Especifica o número completo de 4 dígitos do ano como um número binário de palavra inteira; por exemplo, 1995, 2001.

YYDDD ( área de dados )

Especifica o campo do usuário de 6 caracteres em que o CICS retorna a data, no formato ano / dia; por exemplo, 95/301. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 6 caracteres.

YYDDMM ( área de dados )

Especifica o campo do usuário de 8 caracteres em que o CICS retorna a data, no formato ano / dia / mês; por exemplo, 95/30/10. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres.

AAMMDD ( área de dados )

Especifica o campo do usuário de 8 caracteres em que o CICS retorna a data, no formato ano / mês / dia; por exemplo, 95/10/21. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres.

AAAADDD ( área de dados )

Especifica o campo do usuário de 8 caracteres em que o CICS retorna a data, no formato ano / dia; por exemplo 1995/200. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 8 caracteres.

AAAADDMM ( área de dados )

Especifica o campo do usuário de 10 caracteres em que o CICS retorna a data, no formato ano / dia / mês; por exemplo 1995/21/06. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 10 caracteres.

AAAAMMDD ( área de dados )

Especifica o campo do usuário de 10 caracteres em que o CICS retorna a data, no formato ano / mês / dia; por exemplo 1995/06/21. Um separador está presente se solicitado pela opção DATESEP. Se nenhum separador for solicitado, o valor retornado será justificado à esquerda no campo do usuário de 10 caracteres.

Condições:

16 INVREQ

Valores RESP2:

1

O valor ABSTIME é menor que zero ou não está no formato decimal compactado.

2

Valor CVDA inválido para a opção STRINGFORMAT.

Ação padrão: encerra a tarefa de forma anormal.

 

Exemplos:

O exemplo a seguir mostra o efeito de algumas das opções do comando. Deixe utime conter o valor 003578979940458 em milissegundos.

EXEC CICS ASKTIME ABSTIME(utime)

EXEC CICS FORMATTIME ABSTIME(utime)

          DATESEP('-') DDMMYY(date)

          TIME(time) TIMESEP(':')

 

Isso dá os valores 31-05-13 para a data e 08:05:40 para a hora .