0Pricing
Lua Academy · Aula

os.time e os.date

Obtenha a hora atual.

os.time e os.date é uma aula grátis de Lua Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Lua Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Lua Academy inclui 4 aulas no total.

Por que time é importante

Os programas frequentemente precisam saber o time atual. Um jogo registra quando você marcou pontos, um arquivo de registro registra cada evento e um aplicativo de lembretes faz a contagem regressiva até um prazo.

Lua mantém suas ferramentas de time na biblioteca integrada os. As duas principais são os.time e os.date. Nesta lição, você conhecerá ambas.

os.time retorna um número

os.time() sem argumentos retorna o momento atual como um único número.

Esse número é a contagem de segundos desde um ponto fixo no passado, a época. É apenas um inteiro, então você pode armazená-lo, compará-lo ou fazer cálculos com ele.

local now = os.time()
print(now)
print(type(now))

A época

Na maioria dos sistemas, a época é a meia-noite de 1º de janeiro de 1970, UTC. Portanto, os.time() informa quantos segundos se passaram desde então.

Um número grande como 1700000000 é normal. Ele aumenta em uma unidade a cada segundo, o que o torna perfeito para comparar dois momentos.

local seconds = os.time()
print("Seconds since 1970:", seconds)

os.date retorna texto

Uma contagem bruta de segundos é difícil de ler. os.date() transforma time em texto fácil de entender.

Quando chamado sem argumentos, ele retorna uma cadeia de caracteres legível que descreve o date e o time atuais, usando as configurações locais do seu sistema.

print(os.date())

os.date com um formato

Normalmente, você passa uma cadeia de caracteres de formato para os.date. Códigos especiais que começam com % são substituídos por partes do date.

%Y representa o ano com quatro dígitos, %m representa o mês e %d representa o dia. Os demais textos permanecem como estão.

print(os.date("Year: %Y"))
print(os.date("%Y-%m-%d"))

Combinando time e date

os.date pode receber um segundo argumento: um número de time. Passe a ele o resultado de os.time para formatar aquele momento exato.

Sem o segundo argumento, ele usa o time atual; portanto, estas duas chamadas descrevem o mesmo instante.

local t = os.time()
print(os.date("%Y-%m-%d", t))

Local versus UTC

Por padrão, os.date usa o fuso horário local. Para obter UTC, o time universal, comece a cadeia de caracteres de formato com um ponto de exclamação !.

Isso é importante para servidores e aplicativos usados no mundo todo, nos quais todos devem concordar com um único relógio.

print("Local:", os.date("%H:%M"))
print("UTC:  ", os.date("!%H:%M"))

A forma de tabela

Se você passar "*t" como formato, os.date retornará uma tabela em vez de uma cadeia de caracteres.

A tabela contém campos nomeados, como year, month, day, hour, min e sec. Isso é útil quando você precisa de apenas uma parte.

local d = os.date("*t")
print(d.year, d.month, d.day)
print(d.hour, d.min, d.sec)

Lendo um campo

Como a forma de tabela fornece campos nomeados, é fácil obter apenas o mês ou apenas a hora atuais.

Use !*t para obter a versão UTC da tabela. Cada campo é um número simples que você pode usar em condições.

local d = os.date("*t")
if d.hour < 12 then
  print("Good morning")
else
  print("Good afternoon")
end

os.time a partir de uma tabela

os.time também funciona no sentido inverso. Forneça uma tabela com year, month e day, e ele retornará a contagem de segundos correspondente a esse date.

Isso permite criar um valor de time para qualquer date específico do calendário que você escolher.

local t = os.time({year=2020, month=1, day=1, hour=0})
print(t)
print(os.date("%Y-%m-%d", t))

Ida e volta

Você pode alternar livremente entre as duas formas: os.time transforma uma tabela em um número, e os.date("*t", n) transforma um número novamente em uma tabela.

Essa conversão de ida e volta é a base dos cálculos com date, que você explorará em lições posteriores.

local n = os.time({year=2021, month=6, day=15})
local back = os.date("*t", n)
print(back.year, back.month, back.day)

Verificação rápida

Teste sua compreensão das duas funções principais.

Recapitulação

os.time() fornece o momento atual como um número de segundos desde a época. os.date() transforma time em texto usando códigos de formato % ou em uma tabela com "*t".

Adicione ! para obter UTC e passe um número de time como segundo argumento para formatar um instante específico. Juntas, essas funções atendem a quase todas as necessidades relacionadas a date em Lua.

Perguntas Frequentes

A aula “os.time e os.date” é grátis?

Sim — o texto completo de “os.time e os.date” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Lua Academy, atualize para CoddyKit PRO. O curso de Lua Academy inclui 4 aulas no total.

O que vou aprender em “os.time e os.date”?

Obtenha a hora atual. Você pratica Lua Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Lua Academy?

Nenhuma experiência prévia é necessária. Lua Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “os.time e os.date”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Lua Academy?

Sim. Cada aula de Lua Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. os.time e os.date
  2. Formatando datas
  3. Aritmética de tempo
  4. Medindo durações
← Voltar para Lua Academy