Trechos de timestamp Unix em Python
Exemplos de Python para o tempo Unix atual, conversão de timestamp para datetime, tratamento de UTC, milissegundos e saída de data formatada usando a biblioteca padrão.
import time
int(time.time())import time
int(time.time() * 1000)import datetime
datetime.datetime.fromtimestamp(1700000000)import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())Noções básicas de marcas de tempo em Python
O time.time() do Python retorna os segundos desde a época Unix como número de ponto flutuante. Envolva com int() para segundos Unix inteiros, ou multiplique por 1000 quando precisar de milissegundos.
Saída de datetime com fuso horário
Use datetime.fromtimestamp(ts, tz=datetime.timezone.utc) para uma saída UTC explícita. Evite depender do fuso horário local do servidor ao gerar valores para logs, APIs ou linhas de banco de dados.
Notas de produção para Python
O Python facilita criar valores datetime tanto naive quanto com fuso horário, então seja deliberado sobre qual atravessa um limite do sistema. Use datetimes UTC com fuso para APIs, tarefas agendadas e gravações em banco de dados. Converta para um fuso local apenas para exibição, relatórios ou regras de negócio que dependam explicitamente de um calendário local.
- Use int(time.time()) para segundos Unix inteiros em scripts e ferramentas de linha de comando
- Use int(time.time() * 1000) apenas quando o sistema receptor espera milissegundos
- Use datetime.fromtimestamp(ts, tz=timezone.utc) em vez do fromtimestamp local para uma saída portátil
- Use .isoformat() quando precisar de um valor UTC legível em logs ou JSON
datetime today em Python: datetime.today() vs datetime.now()
As buscas comuns em Python «datetime today python», «today timestamp python» ou «datetime now python utc» são respondidas pelo módulo datetime. datetime.today() e datetime.now() são quase idênticos — ambos retornam um datetime local naive. Para código moderno, prefira datetime.now(timezone.utc), que retorna um valor UTC com fuso que pode ser convertido com segurança em uma marca de tempo Unix.
- datetime.today() → datetime naive no fuso local (sem tzinfo anexado)
- datetime.now() → igual a today() a menos que você passe um argumento tz
- datetime.now(timezone.utc) → datetime UTC com fuso (preferido para código novo)
- datetime.now(timezone.utc).timestamp() → segundos epoch Unix atuais como float
- date.today() → a data de hoje sem componente de hora (um objeto date, não datetime)
- int(time.time()) → segundos Unix atuais como int — a forma mais curta
- time.time_ns() → nanossegundos epoch atuais (Python 3.7+)
String para datetime em Python, datetime para string
Os usuários de Python que buscam «string to datetime python», «py datetime to string» ou «datetime to string» querem strptime/strftime ou datetime.fromisoformat(). Use fromisoformat() para entrada ISO 8601 (Python 3.7+; 3.11 suporta ISO 8601 completo, incluindo o deslocamento UTC).
- String para datetime python: datetime.fromisoformat('2024-03-15T14:30:00+00:00') — preferido para ISO 8601
- String para datetime python (formato personalizado): datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
- Py datetime to string / datetime to string: dt.isoformat() retorna '2024-03-15T14:30:00+00:00'
- Py datetime to string (formato personalizado): dt.strftime('%Y-%m-%d %H:%M:%S') retorna '2024-03-15 14:30:00'
- Ida e volta ISO 8601: datetime.fromisoformat(s).isoformat() — produz a mesma string de volta
- Para marca de tempo Unix: dt.timestamp() (segundos float); int(dt.timestamp()) para segundos inteiros
- Python convert string to date / convert string to date — datetime.fromisoformat(s) para ISO 8601; datetime.strptime(s, fmt) para formatos personalizados
- Saída só de data em Python: date.fromisoformat('2024-03-15') retorna um objeto date (sem hora)
FAQ
- time.time() retorna um inteiro?
- Não. Retorna segundos como um valor de ponto flutuante. Envolva com int() para segundos Unix inteiros, ou multiplique antes de arredondar quando precisar de milissegundos.
- Os valores datetime devem ser ingênuos ou cientes de fuso?
- Use valores datetime UTC cientes de fuso para APIs, bancos de dados e logs. Valores datetime ingênuos é melhor evitar nas fronteiras do sistema porque seu significado de fuso é implícito.