Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
Date

Date 


 

Date ( dataCadeia ) -> Resultado 
Parâmetro Tipo   Descrição
dataCadeia  String, Data in Cadeia que contém a data a resolver
Resultado  Data in Data

O comando Date avalia dataCadeia e retorna uma data.

O parâmetro dataCadeia deve respeitar o formato data ISO  ou os parâmetros regionais do sistema.

Formato data ISO
A cadeia deve estar no formato: "AAAA-MM-DDTHH:MM:SS", por exemplo "2013-11-20T10:20:00". Neste caso, Date avalia o parâmetro dataCadeia corretamente, sem importar a configuração da linguagem atual. Os decimais de segundos, precedidos por um ponto, se suporta (exemplo: "2013-11-20T10:20:00.9854").
Se o formato dataCadeia não respeita este esquema ISO, logo a data se avalia como um formato data curto baseado nos parâmetros regionais do sistema.

Nota: a partir de 4D v14, é recomendado utilizar o formato "YYYY-MM-DDTHH:MM:SSZ", conforme a norma ISO e permitindo expressar a zona horária.

 

Parâmetros regionais
Se dataCadeia não corresponde ao formato ISO, os parâmetros regionais definidos no sistema operativo para uma data curta são utilizados para a avaliação. Por exemplo, na versão em espanhol de 4D, por padrão a data deve estar na ordem MM/DD/AA (mês, dia, ano). O mês e o dia possam ter um ou dois dígitos. O ano pode ser de dois ou quatro dígitos. Se o ano é de dois dígitos, então Date considera se a data pertence ao século 20 ou 21 em função do valor introduzido. Por padrão o valor pivô é 30:

  • Se o valor introduzido é superior ou igual a 30, 4D considera que a data pertence ao século 20 e adiciona 19 a frente do valor.
  • Se o valor introduzido é inferior a 30, 4D considera que a data pertence ao século 21 e agrega 20 à frente do valor.

Este mecanismo pode ser configurado utilizando o comando SET DEFAULT CENTURY.
Os seguintes caracteres são separadores de datas válidas: barra oblíqua (/), espaço, ponto (.), vírgula (,) e hífen (-).

Se passar uma data inválida (tal como "13/35/94" ou "aa/12/94"), em dataCadeia, Date devolverá uma data inválida (!00/00/00!). É sua responsabilidade verificar que dataCadeia seja uma data válida.
Se avaliar a expressão dateString como undefined, Date retorna uma data vazia (00/00/00). Isso é útil quando espera o resultado de uma expressão (por exemplo um atributo de objeto) possa ser uma data, mesmo se puder ser indefido (por exemplo um atributo objeto).

Nota: a partir de 4D v16 R6, datas podem ser armazenadas em atributos de objeto como valores de tipo de dados. Em versões anteriores, só podiam ser armazenadas como strings (para saber mais sobre essa opção, veja a seção Página Compatibilidade, "Use date type instead of ISO date format in objects"). Para saber se um atributo contém uma data armazenada como uma string ou como uma data, precisa usar o comando Value type (ver último exemplo).

Expressão tipo data
Se a expresao for do tipo de data, Date devolve a dataa passada no parâmetro 'tal como está'. Isto é particularmente útil no contexto da programação genérica utilizando ponteiros ou atributos de objeto.

 

O exemplo a seguir utiliza uma caixa para que o usuário introduza uma data. A string introduzida pelo usuário é convertida em uma data e é guardada na variável reqData:

 vdReqData:=Date(Request("Por favor introduza uma data:";String(Current date)))
 If(OK=1)
  ` Fazer algo com a data guardada em vdReqData
 End if

Os exemplos abaixo mostram vários casos:

 vdDate:=Date("12/25/94") //12/25/94 on a US system
 vdDate2:=Date("40/40/94") //00/00/00
 vdDate3:=Date("It was the 6/30/2016") //06/30/16
 C_OBJECT($vobj)
 $vobj:=New object("expDate";"2020-11-17T00:00:00.0000")
 vdDate4:=Date($vobj.expDate//11/17/20
 vdDate5:=Date($vobj.creationDate//00/00/00

Data de avaliação baseada em uma data em formato ISO:

 $vtDateISO:="2013-06-05T20:00:00"
 $vDate:=Date($vtDateISO)
  //$vDate representa o 5 de junho de 2013 sem importar a linguagem do sistema

Se quiser obter uma data de um atributo de objeto, qualquer que seja a opção atual de atributo de armazenamento de data:

 If(Value type($myObj.myDate)=Is date//está armazenado como data, não precisa converter
    $vDate:=$myObj.myDate
 Else //it's stored as string
    $vDate:=Date($myObj.myDate)
 End if



Ver também 

Bool
String

 
PROPRIEDADES 

Produto: 4D
Tema: Datas e Horas
Número 102

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: < 4D v6
Modificado: 4D v16 R5
Modificado: 4D v16 R6

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)