Python Snippets

Fragmentos de timestamp Unix en Python

Ejemplos de Python para el tiempo Unix actual, la conversión de timestamp a datetime, el manejo de UTC, los milisegundos y la salida de fecha formateada usando la biblioteca estándar.

Current Unix timestamp (seconds)
import time
int(time.time())
Current Unix timestamp (milliseconds)
import time
int(time.time() * 1000)
datetime from timestamp (local)
import datetime
datetime.datetime.fromtimestamp(1700000000)
datetime from timestamp (UTC)
import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)
Formatted string
import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")
Timestamp from datetime
import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())

Conceptos básicos de marcas de tiempo en Python

El time.time() de Python devuelve los segundos desde la época Unix como número en coma flotante. Envuélvelo con int() para segundos Unix enteros, o multiplícalo por 1000 cuando necesites milisegundos.

Salida de datetime con zona horaria

Usa datetime.fromtimestamp(ts, tz=datetime.timezone.utc) para una salida UTC explícita. Evita depender de la zona horaria local del servidor al generar valores para registros, API o filas de base de datos.

Notas de producción para Python

Python facilita crear valores datetime tanto naive como con zona horaria, así que sé deliberado sobre cuál cruza un límite del sistema. Usa datetime UTC con zona horaria para API, trabajos programados y escrituras en base de datos. Convierte a una zona horaria local solo para visualización, informes o reglas de negocio que dependan explícitamente de un calendario local.

  • Usa int(time.time()) para segundos Unix enteros en scripts y herramientas de línea de comandos
  • Usa int(time.time() * 1000) solo cuando el sistema receptor espere milisegundos
  • Usa datetime.fromtimestamp(ts, tz=timezone.utc) en lugar del fromtimestamp local para una salida portátil
  • Usa .isoformat() cuando necesites un valor UTC legible en registros o JSON

datetime today en Python: datetime.today() vs datetime.now()

Las búsquedas comunes en Python «datetime today python», «today timestamp python» o «datetime now python utc» las responde el módulo datetime. datetime.today() y datetime.now() son casi idénticos — ambos devuelven un datetime local naive. Para código moderno prefiere datetime.now(timezone.utc), que devuelve un valor UTC con zona horaria que puede convertirse con seguridad a una marca de tiempo Unix.

  • datetime.today() → datetime naive en la zona horaria local (sin tzinfo adjunto)
  • datetime.now() → igual que today() salvo que pases un argumento tz
  • datetime.now(timezone.utc) → datetime UTC con zona horaria (preferido para código nuevo)
  • datetime.now(timezone.utc).timestamp() → segundos epoch Unix actuales como float
  • date.today() → fecha de hoy sin componente de hora (un objeto date, no datetime)
  • int(time.time()) → segundos Unix actuales como int — la forma más corta
  • time.time_ns() → nanosegundos epoch actuales (Python 3.7+)

String a datetime en Python, datetime a string

Los usuarios de Python que buscan «string to datetime python», «py datetime to string» o «datetime to string» quieren strptime/strftime o datetime.fromisoformat(). Usa fromisoformat() para entrada ISO 8601 (Python 3.7+; 3.11 admite ISO 8601 completo, incluido el desfase UTC).

  • String a datetime python: datetime.fromisoformat('2024-03-15T14:30:00+00:00') — preferido para ISO 8601
  • String a datetime python (formato propio): datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
  • Py datetime to string / datetime to string: dt.isoformat() devuelve '2024-03-15T14:30:00+00:00'
  • Py datetime to string (formato propio): dt.strftime('%Y-%m-%d %H:%M:%S') devuelve '2024-03-15 14:30:00'
  • Ida y vuelta ISO 8601: datetime.fromisoformat(s).isoformat() — produce el mismo string de vuelta
  • Para marca de tiempo Unix: dt.timestamp() (segundos float); int(dt.timestamp()) para segundos enteros
  • Python convert string to date / convert string to date — datetime.fromisoformat(s) para ISO 8601; datetime.strptime(s, fmt) para formatos propios
  • Salida solo de fecha en Python: date.fromisoformat('2024-03-15') devuelve un objeto date (sin hora)

FAQ

¿time.time() devuelve un entero?
No. Devuelve segundos como un valor de coma flotante. Envuélvelo con int() para segundos Unix enteros, o multiplica antes de redondear cuando necesites milisegundos.
¿Los valores datetime deberían ser ingenuos o con zona horaria?
Usa valores datetime UTC con zona horaria para APIs, bases de datos y logs. Los valores datetime ingenuos conviene evitarlos en los límites del sistema porque su significado de zona horaria es implícito.