// DOCS NAVIGATION
std.time — Tempo_
SOURCE: content/docs/reference/05-stdlib.md — 05 Stdlib / 13. std.time — Tempo / Time
import std.time
time_now_millis() -> int
PT-BR: Retorna os milissegundos desde a época Unix. Retorna -1 em caso de erro.
EN-US: Returns milliseconds since the Unix epoch. Returns -1 on error.
let inicio = std.time.time_now_millis()
// ... operação / operation ...
let fim = std.time.time_now_millis()
let duracao = fim - inicio
println(f"Duração: {duracao}ms")
time_now_secs() -> int
PT-BR: Retorna os segundos desde a época Unix. Retorna -1 em caso de erro.
EN-US: Returns seconds since the Unix epoch. Returns -1 on error.
let agora = std.time.time_now_secs()
println(f"Timestamp: {agora}")
sleep_ms(ms: int) -> unit
PT-BR: Pausa a execução por ms milissegundos.
EN-US: Pauses execution for ms milliseconds.
println("Aguardando...")
std.time.sleep_ms(1000)
// Pausa 1 segundo / Pause 1 second
println("Pronto!")
Tipos / Types
std.time tambem expoe handles opacos de tempo gerenciados pelo runtime:
Duration: intervalo nao negativo.Instant: ponto monotonicamente medido pelo runtime.UtcDateTime: data/hora UTC decomposta.
Clock monotônico / Monotonic clock
monotonic_millis() -> int
PT-BR: Retorna milissegundos desde a inicializacao do runtime usando clock monotônico. EN-US: Returns milliseconds since runtime start using a monotonic clock.
monotonic_nanos() -> int
PT-BR: Retorna nanossegundos desde a inicializacao do runtime usando clock monotônico. EN-US: Returns nanoseconds since runtime start using a monotonic clock.
Duração / Duration
duration_ms(ms: int) -> Duration
Cria uma duração em milissegundos. Valores negativos falham em runtime.
duration_secs(secs: int) -> Duration
Cria uma duração em segundos. Valores negativos falham em runtime.
duration_millis(duration: Duration) -> int
Retorna a duração em milissegundos.
duration_secs_value(duration: Duration) -> int
Retorna a duração em segundos inteiros. O nome evita overload com duration_secs(secs).
duration_add(lhs: Duration, rhs: Duration) -> Duration
Soma durações com checagem de overflow.
duration_sub(lhs: Duration, rhs: Duration) -> Duration
Subtrai durações. Falha se rhs for maior que lhs.
sleep(duration: Duration) -> unit
Pausa usando Duration. Sleeps excessivamente longos são rejeitados pelo runtime.
Instantes / Instants
instant_now() -> Instant
Captura o instante monotônico atual.
instant_elapsed_ms(instant: Instant) -> int
Retorna os milissegundos decorridos desde instant.
instant_add(instant: Instant, duration: Duration) -> Instant
Retorna um novo instante deslocado por duration.
instant_has_elapsed(instant: Instant) -> bool
Retorna true quando o instante já chegou.
UTC
unix_to_utc(secs: int) -> UtcDateTime
Converte segundos Unix para data/hora UTC usando calendario civil deterministico no runtime.
utc_year(dt), utc_month(dt), utc_day(dt), utc_hour(dt), utc_minute(dt), utc_second(dt)
Extraem campos de UtcDateTime.
Exemplo: Benchmark Simples
module benchmark
import std.time
from std.io import println
func operacao_pesada(n: int) returns int {
let soma = 0
for i in 0..n {
soma = soma + i
}
return soma
}
public func main() {
let inicio = std.time.time_now_millis()
let resultado = operacao_pesada(1000000)
let fim = std.time.time_now_millis()
println(f"Resultado: {resultado}")
println(f"Tempo: {fim - inicio}ms")
}