Recursos de marcas de tiempo

Comparación de Timestamp por Lenguaje de Programación

Comparación de Timestamp por Lenguaje de Programación

Referencia rápida para operaciones de timestamp en lenguajes de programación populares.

Timestamp Actual

LenguajeSegundosMilisegundosMicrosegundos
JavaScriptMath.floor(Date.now() / 1000)Date.now()performance.now()
Pythonint(time.time())int(time.time() * 1000)time.time_ns() // 1000
JavaSystem.currentTimeMillis() / 1000System.currentTimeMillis()Instant.now().getEpochSecond()
Gotime.Now().Unix()time.Now().UnixMilli()time.Now().UnixMicro()
PHPtime()microtime(true) * 1000microtime(true) * 1000000
RubyTime.now.to_iTime.now.to_f * 1000Time.now.to_r
C#DateTimeOffset.UtcNow.ToUnixTimeSeconds()DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()-
SwiftDate().timeIntervalSince1970Int(Date().timeIntervalSince1970 * 1000)-

Timestamp a Fecha

LenguajeCódigo
JavaScriptnew Date(timestamp * 1000)
Pythondatetime.fromtimestamp(timestamp)
JavaInstant.ofEpochSecond(timestamp)
Gotime.Unix(timestamp, 0)
PHPdate('Y-m-d H:i:s', $timestamp)
RubyTime.at(timestamp)
C#DateTimeOffset.FromUnixTimeSeconds(timestamp)
SwiftDate(timeIntervalSince1970: TimeInterval(timestamp))

Fecha a Timestamp

LenguajeCódigo
JavaScriptMath.floor(date.getTime() / 1000)
Pythonint(date.timestamp())
Javadate.toEpochSecond(ZoneOffset.UTC)
Godate.Unix()
PHPstrtotime('2024-01-01')
Rubydate.to_i
C#((DateTimeOffset)date).ToUnixTimeSeconds()
SwiftInt(date.timeIntervalSince1970)

Formateo

LenguajeCódigo
JavaScriptdate.toISOString() o date.toLocaleString()
Pythondate.strftime('%Y-%m-%d %H:%M:%S')
JavaDateTimeFormatter.ISO_DATE_TIME.format(date)
Godate.Format(time.RFC3339)
PHPdate('Y-m-d H:i:s', $timestamp)
Rubydate.strftime('%Y-%m-%d %H:%M:%S')
C#date.ToString("yyyy-MM-dd HH:mm:ss")
SwiftdateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

Manejo de Zonas Horarias

LenguajeUTCLocalConvertir
JavaScriptnew Date().toISOString()new Date().toLocaleString()date.toLocaleString('en-US', {timeZone: 'UTC'})
Pythondatetime.utcnow()datetime.now()date.astimezone(timezone('UTC'))
JavaInstant.now()LocalDateTime.now()date.atZone(ZoneId.of("UTC"))
Gotime.Now().UTC()time.Now()date.In(time.UTC)
PHPgmdate()date()date_default_timezone_set('UTC')
RubyTime.now.utcTime.nowTime.now.getutc
C#DateTime.UtcNowDateTime.NowTimeZoneInfo.ConvertTimeToUtc(date)
SwiftDate() (siempre UTC internamente)Date()Calendar.current.dateComponents

Diferencias Clave

Inicio de la Época

  • Todos los lenguajes usan época Unix: 1 de enero de 1970 00:00:00 UTC
  • Excepción: tiempo GPS usa 6 de enero de 1980
  • TAI usa 1 de enero de 1958

Precisión

  • Segundos: Más común, 10 dígitos (hasta 2286)
  • Milisegundos: 13 dígitos, predeterminado en JavaScript
  • Microsegundos: 16 dígitos
  • Nanosegundos: 19 dígitos, algunos sistemas

Almacenamiento de Zona Horaria

  • JavaScript: Sin zona horaria en objeto Date, usa zona del navegador
  • Python: Objetos datetime Naive vs Aware
  • Java: Instant (UTC) vs ZonedDateTime (con zona)
  • Go: Location adjunta a objeto Time
  • Ruby: Objeto Time incluye offset de zona horaria
  • C#: DateTimeKind (Unspecified, Utc, Local)
  • Swift: Date siempre es UTC, Calendar maneja zonas

Mejores Prácticas

  1. Siempre almacene UTC en bases de datos
  2. Convierta a hora local solo para visualización
  3. Use ISO 8601 para serialización de API
  4. Maneje segundos intercalares con cuidado (GPS/TAI vs UTC)
  5. Considere la precisión necesaria para su caso de uso

Recursos Relacionados