Formatos de data JavaScript


Índice

    Mostrar índice


Entrada de data JavaScript

Geralmente existem 3 tipos de formatos de entrada de data JavaScript:

ISO Date

"2015-03-25" (O Padrão Internacional)

Short Date

"25/03/2015"

Long Date

"25 de março de 2015" ou "25 de março de 2015"

O formato ISO segue um padrão rígido em JavaScript.

Os outros formatos não são tão bem definido e pode ser específico do navegador.


Saída de data JavaScript

Independentemente do formato de entrada, o JavaScript irá (por padrão) exibir datas completas formato de string de texto:


Datas ISO JavaScript

ISO 8601 é o padrão internacional para a representação de datas e vezes.

A sintaxe ISO 8601 (AAAA-MM-DD) também é o formato de data JavaScript preferido:

Exemplo (data completa)

const d = new Date("2015-03-25");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

A data calculada será relativa ao seu fuso horário.
Dependendo do seu fuso horário, o resultado acima irá variar entre 24 e 25 de março.



Datas ISO (ano e mês)

As datas ISO podem ser escritas sem especificar o dia (AAAA-MM):

Exemplo

const d = new Date("2015-03");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015-03"); 
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Os fusos horários irão variar o resultado acima entre 28 de fevereiro e 01 de março.


Datas ISO (apenas ano)

As datas ISO podem ser escritas sem mês e dia (AAAA):

Exemplo

const d = new Date("2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>

<p id="demo"></p>

<script>
const d = new Date("2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Os fusos horários irão variar o resultado acima entre 31 de dezembro de 2014 e 01 de janeiro de 2015.


Datas ISO (data-hora)

As datas ISO podem ser escritas com horas, minutos e segundos adicionados (AAAA-MM-DDTHH:MM:SSZ):

Exemplo

const d = new Date("2015-03-25T12:00:00Z");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>
<p>Separate date and time with a capital T.</p>
<p>Indicate UTC time with a capital Z.</p>

<p id="demo"></p>

<script>
const d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

A data e a hora são separadas por T maiúsculo.

A hora UTC é definida com uma letra maiúscula Z.

Se você quiser modificar a hora relativa ao UTC, remova o Z e adicione +HH:MM ou -HH:MM em vez de:

Exemplo

const d = new Date("2015-03-25T12:00:00-06:30");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript ISO Dates</h2>
<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>

</body>
</html>

UTC (Hora Universal Coordenada) é igual a GMT (Hora Média de Greenwich).

A omissão de T ou Z em uma sequência de data e hora pode fornecer resultados diferentes em navegadores diferentes.


Fusos horários

Ao definir uma data, sem especificar o fuso horário, o JavaScript usará o fuso horário do navegador.

Ao obter uma data, sem especificar o fuso horário, o resultado é convertido para o fuso horário do navegador.

Em outras palavras: Se uma data/hora for criada em GMT (Greenwich Mean Time), o a data/hora será convertida para CDT (horário de verão central dos EUA) se um usuário navegar do centro dos EUA.


Datas curtas em JavaScript.

As datas abreviadas são escritas com uma sintaxe "MM/DD/AAAA" como esta:

Exemplo

const d = new Date("03/25/2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

AVISOS!

Em alguns navegadores, meses ou dias sem zeros à esquerda podem produzir um erro:

const d = new Date("2015-3-25");

O comportamento de "AAAA/MM/DD" é indefinido.
Alguns navegadores tente adivinhar o formato. Alguns retornarão NaN.

const d = new Date("2015/03/25");

O comportamento de "DD-MM-AAAA" também é indefinido.
Alguns navegadores tente adivinhar o formato. Alguns retornarão NaN.

const d = new Date("25-03-2015");

Datas longas em JavaScript.

Datas longas são geralmente escritas com uma sintaxe "MMM DD AAAA" como esta:

Exemplo

const d = new Date("Mar 25 2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Mês e dia podem estar em qualquer ordem:

Exemplo

const d = new Date("25 Mar 2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

E o mês pode ser escrito por extenso (janeiro) ou abreviado (janeiro):

Exemplo

const d = new Date("January 25 2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Exemplo

const d = new Date("Jan 25 2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

As vírgulas são ignoradas. Os nomes não diferenciam maiúsculas de minúsculas:

Exemplo

const d = new Date("JANUARY, 25, 2015");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript new Date()</h2>

<p id="demo"></p>

<script>
const d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Entrada de data - análise de datas

Se você tiver uma string de data válida, poderá usar o Método Date.parse() para convertê-lo em milissegundos.

Date.parse() retorna o número de milissegundos entre a data e janeiro 1, 1970:

Exemplo

let msec = Date.parse("March 21, 2012");

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Date.parse()</h2>
<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>

<p id="demo"></p>

<script>
const msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>

</body>
</html>

Você pode então usar o número de milissegundos para convertê-lo em um objeto de data:

Exemplo

let msec = Date.parse("March 21, 2012");
const d = new Date(msec);

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Date.parse()</h2>
<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>

<p id="demo"></p>

<script>
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>

</body>
</html>

Referência completa de data JavaScript

Para uma referência completa da data, acesse:

Referência completa de data JavaScript.

A referência contém descrições e exemplos de todas as propriedades Date e métodos.