Una Guia per a Desenvolupadors sobre el Convertidor de Timestamp Unix
Domina el convertidor de timestamps Unix. Aprèn a convertir el temps d'epoch en dates llegibles per humans, gestiona diferents idiomes i evita errors comuns dels desenvolupadors.

Un convertidor de timestamps Unix és una d'aquestes eines simples però indispensables que com a desenvolupador o analista de dades utilitzaràs constantment. És una utilitat pràctica que tradueix un número llarg, aparentment aleatori, en una data i hora que podem entendre realment. Aquesta traducció és crucial quan estàs analitzant registres del sistema, treballant amb APIs o consultant bases de dades on el temps es guarda en aquest format super eficient.
Què és un Timestamp Unix i per què és important

Abans que puguis realment apreciar un bon convertidor, has de comprendre què és realment aquell número. En el seu nucli, un timestamp Unix és només un recompte continu de segons. Fa un seguiment del nombre total de segons que han passat des de 00:00:00 UTC del 1 de gener de 1970. Aquest moment específic en el temps és conegut famosament com l'"època Unix".
Per què aquest mètode? Simplicitat i eficiència. Emmagatzemar el temps com un únic enter és molt més compacte i eficient que una cadena de text verbose com "divendres, 1 de gener de 2021 12:00:00 AM GMT". Això el fa perfecte per a algunes àrees clau:
- Emmagatzematge de Bases de Dades: Els timestamps són petits, cosa que els fa ràpids d'indexar i consultar. És una gran victòria per al rendiment.
- Payloads d'API: Enviar un únic número amunt i avall és molt més lleuger en amplada de banda que enviar una cadena de data completa, cosa que condueix a temps de resposta més ràpids.
- Fitxers de Registres: Quan estàs analitzant registres de desenes de sistemes diferents, tenir un timestamp uniforme i independent de l'idioma és un salvavides.
- Càlculs: Necessites saber quant temps va durar un procés? Només has de restar el timestamp d'inici del timestamp de finalització. És matemàtiques simples d'enters.
Segons vs. Mil·lisegons i més enllà
El classic timestamp Unix és un número de 10 dígits que representa segons. Però a mesura que la tecnologia ha evolucionat, la necessitat de mesuraments de temps més detallats ha crescut. Aquí és on començaràs a veure diferents longituds de timestamps, i és un bloqueig comú.
Aquí tens un breu resum del que trobaràs habitualment al món real. Confondre un amb un altre és un error clàssic d'"errada per mil" que pot conduir a alguns errors molt confusos.
Formats de Timestamp Unix Comuns a Primer Cop d'ull
| Unitat | Dígits | Cas d'ús típic | Valor d'exemple (per al mateix moment) |
|---|---|---|---|
| Segons | 10 | Estàndard per a la majoria de sistemes de backend, bases de dades i APIs. | 1609459200 |
| Mil·lisegons | 13 | Molt comú en tecnologia web, especialment JavaScript. | 1609459200000 |
| Microsegons | 16 | Utilitzat en comerç d'alta freqüència o computació científica. | 1609459200000000 |
Tenir aquests formats clars és clau. Si una eina espera segons i li dones mil·lisegons, obtindràs una data que està milers d'anys en el futur. És un error que tots hem comès en algun moment!
El Famos Problema de l'Any 2038
La simplicitat elegant del timestamp Unix també va crear una bomba de temps: el "problema de l'any 2038". En sistemes de 32 bits més antics, els timestamps es guardaven com un enter signat de 32 bits. El problema és que aquest tipus d'enter té un límit: no pot contenir un número més gran que 2,147,483,647.
El 19 de gener de 2038, a les 03:14:07 UTC, el nombre de segons des de l'època superarà aquest límit. Quan ho faci, l'enter "es girarà" i es convertirà en un número negatiu. Això faria que els sistemes vulnerables interpretessin la data com si tornés a 1901, cosa que podria fer que milers de milions de dispositius llegats encara en funcionament es bloquegessin. Pots obtenir més informació sobre l'època Unix i el seu impacte dels experts de StrongDM.
Sortosament, això no és una cosa de la qual la majoria de nosaltres hàgim de preocupar-nos dia a dia. La gran majoria dels sistemes moderns han passat a enters de 64 bits per a la mesura del temps. Un enter de 64 bits és tan massiu que no s'overflowarà durant uns 292 mil milions d'anys, resolent efectivament el problema per sempre.
Encara així, és un fragment fantàstic de la història de la computació i una peça crítica de coneixement si alguna vegada et trobes treballant en sistemes embeguts més antics o codi llegat. Entendre aquests fonaments fa que qualsevol convertidor de timestamps Unix sigui una eina molt més potent a les teves mans.
Facilitant les conversions al teu navegador
Encara que fer servir un comandament de terminal o un fragment de codi funciona, no sempre és la manera més ràpida de fer les coses. De vegades, només necessites una resposta ara mateix, sense trencar la teva concentració o canviar de finestra. Aquí és on una bona eina basada en el navegador demostra realment el seu valor, especialment un convertidor de timestamps Unix dedicat que viu dins del teu navegador.
La veritable màgia aquí és sobre mantenir el flux. Imagina't això: estàs analitzant una resposta d'API a les eines de desenvolupador del teu navegador i veus un timestamp. En lloc d'obrir una altra pestanya o iniciar un terminal, només has de prémer una combinació de tecles ràpida, enganxar el número i obtenir la teva resposta al moment. Aquest és el tipus de flux de treball sense interrupcions que obtens amb eines com ShiftShift Extensions, que agrupa un munt d'utilitats útils en un sol Paleta de Comandes.
Obteniu Respostes Instantànies amb una Combinació de Tecles
Tot es redueix a la velocitat. Amb una eina com ShiftShift, un ràpid doble toc de la tecla Shift (o Cmd+Shift+P en un Mac) obre una barra de comandes. Simplement comença a escriure "timestamp" i el conversor apareix. Enganxa el teu valor i ja tens una data llegible per a humans al moment.
Això és el que sembla: la Paleta de Comandes està preparada i esperant per convertir un timestamp just sobre la teva pàgina actual.
La millor part és com s'integra sense interferir amb el que estàs fent. El conversor és només una de les moltes eines disponibles en la mateixa superposició, així que mai has de deixar el que estàs fent.
Aquesta aproximació és un salvavides per a desenvolupadors, testers i qualsevol altra persona que pràcticament viu en el seu navegador. A més, la conversió es realitza completament a la teva màquina. Les dades sensibles dels registres o les respostes de l'API mai abandonen el teu ordinador, la qual cosa és una gran victòria per a la privadesa.
Poder convertir un timestamp, reformatejar un blob JSON desordenat i després calcular una diferència de temps—tot des de la mateixa interfície—és un gran estalvi de temps. Transforma un procés torpede, amb múltiples eines, en una única acció fluida.
Més que un Simple Truc
Una gran utilitat dins del navegador rarament és només una eina única; és part d'un conjunt d'eines sencer. Sovint et trobaràs utilitzant el conversor de timestamps juntament amb altres funcions.
Per exemple, podries combinar-lo amb:
- Un formatador JSON o SQL per netejar una mica de codi abans de treure el timestamp.
- Un calculadora integrada per fer càlculs ràpids sobre valors d'epoch. (Pots jugar amb una eina similar a la pàgina de calculadora de ShiftShift per veure com funciona).
- Una eina de comparació de text per detectar diferències entre dues respostes de l'API, timestamps inclosos.
Tindre totes aquestes eines essencials en un sol lloc crea un flux de treball molt més ràpid i cohesionat. No es tracta només de comoditat; es tracta d'eliminar totes aquelles petites interrupcions repetitives que s'acumulen i maten la teva productivitat al llarg del dia.
Conversions Pràctiques de Timestamps en Codi
Si ets un desenvolupador, saps que jugar amb timestamps és només una part de la feina. Però, siguem sincers, la sintaxi mai és exactament la mateixa d'un llenguatge a un altre. Aquesta secció és la teva guia de referència, plena de fragments de codi que pots agafar i utilitzar immediatament per a les plataformes amb les quals realment treballes. No més excavar en antics fils de Stack Overflow—només exemples pràctics per fer-te avançar.

Tant si estàs manipulant dades en un front-end web, escrivint un script en Python o consultant una base de dades, convertir temps d'epoch és una habilitat fonamental. Passarem pels escenaris més comuns, des de convertir un enter d'epoch en una cadena llegible i després fer-ho tot al revés.
Convertint Timestamps en JavaScript
L'objecte Date de JavaScript és la teva eina principal aquí, però té un gran peculiaritat que fa que els desenvolupadors s'equivoquin tot el temps: opera en mil·lisegons, no en segons. Aquesta és una font clàssica de bugs quan el teu frontend parla amb un backend que utilitza timestamps estàndard de 10 dígits, basats en segons.
Per convertir correctament un timestamp Unix estàndard (en segons) en un objecte Date, has de multiplicar-lo per 1000.
// Un timestamp Unix estàndard de 10 dígits (en segons)
const unixTimestamp = 1672531200;
// Converteix a mil·lisegons, després crea un objecte Date
const dateObject = new Date(unixTimestamp * 1000);
// Format per a una cadena UTC llegible
// Sortida: Dg, 01 Gen 2023 00:00:00 GMT
console.log(dateObject.toUTCString());
Necessites el timestamp actual? Date.now() te'l dóna en mil·lisegons. Només recorda dividir per 1000 i arrodonir cap avall abans d'enviar un timestamp estàndard de 10 dígits de tornada a una API.
Gestionant Conversions amb Python
Al backend, el mòdul datetime de Python és una potència. És increïblement flexible i té un suport fantàstic per a conversions que tenen en compte les zones horàries, cosa que el converteix en una opció fiable per a serveis que necessiten gestionar el temps amb precisió a través de diferents regions.
Aquí tens la manera senzilla de convertir un timestamp amb la biblioteca datetime:
import datetime
Un timestamp Unix estàndard de 10 dígits
unix_timestamp = 1672531200
Converteix el timestamp en un objecte datetime
datetime_obj = datetime.datetime.fromtimestamp(unix_timestamp)
Format per a una cadena neta i llegible per a humans
Sortida: 2023-01-01 00:00:00
print(datetime_obj.strftime('%Y-%m-%d %H:%M:%S'))
Aquesta aproximació senzilla et dóna una manera neta i fiable de gestionar el temps d'epoch en les teves aplicacions Python. I si estàs treballant amb estructures de dades complexes com JSON que contenen timestamps, potser trobaràs útil la nostra guia sobre com utilitzar un formatador JSON per a la depuració.
Conversions de Bases de Dades amb SQL
Les bases de dades sovint emmagatzemen el temps com a timestamps Unix perquè són eficients. La bona notícia és que la majoria dels dialectes SQL tenen funcions integrades per gestionar aquestes conversions directament dins de les teves consultes.
Això és molt més eficient que obtenir marques de temps enteres en brut i convertir-les al codi de la teva aplicació.
La marca de temps Unix és gairebé universal, utilitzada en més del 90% dels llenguatges de programació—des de Date.now() de JavaScript fins a time.time() de Python—impulsant trilions d'operacions diàries. Obtenir les zones horàries correctes és crític; un bon convertidor de marques de temps unix pot gestionar més de 400 zones IANA, cosa que ajuda a prevenir errors en un estimat del 62% de les aplicacions globals que no gestionen les zones horàries de manera explícita. Pots trobar més detalls sobre l'adopció global d'aquests instruments a Fossa.
Per als desenvolupadors, poder formatar SQL, convertir marques de temps i calcular diferències d'epoch sense haver de deixar la teva màquina és una gran victòria en productivitat. Aquest enfocament de primer local també et manté complint amb els estàndards moderns de privadesa de dades com GDPR i CCPA.
Exemple de MySQL
En MySQL, la funció FROM_UNIXTIME() és la que més utilitzaràs. Pren un enter d'epoch i el converteix netament en un format DATETIME estàndard.
SELECT FROM_UNIXTIME(1672531200);
-- Retorna: '2023-01-01 00:00:00'
Per anar en l'altra direcció—d'una cadena de data de nou a una marca de temps d'epoch—només utilitza UNIX_TIMESTAMP().
SELECT UNIX_TIMESTAMP('2023-01-01 00:00:00');
-- Retorna: 1672531200
Exemple de PostgreSQL
PostgreSQL utilitza una funció lleugerament diferent però igual de potent: to_timestamp(). Aquesta funció converteix directament una marca de temps Unix en un valor TIMESTAMP WITH TIME ZONE.
SELECT to_timestamp(1672531200);
-- Retorna: 2023-01-01 00:00:00+00
Com que és conscient de la zona horària directament, és una opció molt robusta per a aplicacions que serveixen a una audiència global on la precisió del temps és innegociable.
Dominar les conversions de marques de temps al terminal
Si vius a la línia de comandes, canviar a un navegador o GUI per a una conversió ràpida de marques de temps és un veritable assassí de flux de treball. Simplement trenca la teva concentració. La bona notícia és que no cal; tant Linux com macOS tenen eines natives potents per gestionar aquestes conversions sense haver de deixar mai el terminal.
L'eina de referència per a això és la humil comanda date. És present pràcticament en tots els sistemes semblants a Unix, però hi ha un problema: la sintaxi per utilitzar-la com a convertidor de marques de temps unix és diferent entre Linux (GNU) i macOS (BSD). Conèixer la diferència és la clau per encertar-ho cada vegada.
Convertint marques de temps a Linux
A Linux, la sintaxi és neta i fàcil de recordar. Només has d'utilitzar la bandera -d per especificar la data, però has de dir-li que estàs proporcionant una marca de temps d'epoch prefixant-la amb un símbol @.
Suposem que estàs revisant registres i veus la marca de temps 1704067200. Per veure què significa realment, executaries això:
date -d @1704067200
Instantàniament, obtindràs una data llegible per a humans, alguna cosa com Mon Jan 1 00:00:00 UTC 2024. També pots netejar aquesta sortida amb el teu propi format personalitzat.
date -d @1704067200 +"%Y-%m-%d %H:%M:%S"
Sortida: 2024-01-01 00:00:00
Consell Professional: Aquesta comanda es converteix en una veritable potència quan comences a canalitzar altres comandes dins d'ella. Pots
grepuna marca de temps d'un enorme fitxer de registre i alimentar-la directament adateper a una conversió instantània. Converteix una tasca de depuració de diversos passos en una sola línia elegant.
Gestionant conversions a macOS
Ara, si executes aquesta mateixa comanda de Linux en un Mac, et donarà un error. La versió BSD de date que utilitza macOS requereix la bandera -r en el seu lloc, i no necessita el prefix @.
Aquí tens com convertir la mateixa marca de temps en un Mac:
date -r 1704067200
Igual que la versió de Linux, pots afegir opcions de format per obtenir la sortida exacta que desitges.
date -r 1704067200 +"%Y-%m-%d %T %Z"
Sortida: 2024-01-01 00:00:00 UTC
Aquesta petita diferència és un clàssic obstacle per a qualsevol que sovint salti entre Linux i macOS. Memoritzar ambdues versions et salvarà de molts maldecaps en el futur.
Un cop tinguis aquestes ordres dominades, pots integrar les conversions de marques de temps directament als teus scripts de shell i anàlisi de registres. És una petita habilitat, però suma a guanys de productivitat seriosos, mantenint-te en la zona i centrat en la feina que importa.
Errors comuns amb marques de temps i com evitar-los
Treballar amb marques de temps Unix sembla senzill a la superfície, però alguns errors clàssics poden portar a errors realment frustrants. Aquests problemes tenen l'hàbit desagradable d'aparèixer lluny de on realment va ocórrer l'error, cosa que els converteix en un veritable maldecap per depurar. Pensa en aquesta secció com la teva guia de camp per detectar i evitar les trampes de marques de temps més comunes que he vist al llarg dels anys.
La confusió entre segons i mil·lisegons
De lluny, l'error més freqüent és confondre segons amb mil·lisegons. Una marca de temps Unix estàndard és un enter de 10 dígits que representa el nombre de segons des de l'epoch. Però molts sistemes, especialment en el món de JavaScript, treballen amb una marca de temps de 13 dígits per mil·lisegons.
Quan una aplicació de front-end passa un valor en mil·lisegons a un backend que espera segons, les coses es torcen.
Per a un convertidor de timestamp unix, aquell número de 13 dígits sembla una data milers d'anys en el futur. Això pot destrossar silenciosament la validació de dades, la lògica de programació i qualsevol registre històric que estiguis intentant mantenir. És el tipus de corrupció de dades subtil que potser no notaràs durant setmanes.
La Trampa del Fus Horari
Una altra trampa que atrapa fins i tot als desenvolupadors més experimentats és el maneig dels fusos horaris. Per la seva pròpia definició, un timestamp Unix sempre està en Hora Universal Coordinada (UTC). Representa un moment únic i universal en el temps, completament independent de la ubicació. La trampa es dispara quan oblides això i assumeixes que un timestamp reflecteix l'hora local d'un usuari.
Aquesta equivocació sol passar quan converteixes un timestamp a una data llegible sense especificar un fus horari. El teu sistema sovint per defecte utilitza l'hora local del servidor, cosa que condueix al caos. Un usuari a Nova York podria veure una hora destinada a algú a Londres, però està desfasada diverses hores.
La regla d'or és senzilla: sempre tracta els timestamps com a UTC al teu backend. Desa'ls com a UTC, processa'ls com a UTC, i només converteix a l'hora local d'un usuari al front-end, just en el moment de la visualització.
Solucionant Errors Comuns en la Conversió de Timestamps
Quan les coses van malament, els símptomes poden ser confusos. Aquí tens una taula de referència ràpida que he preparat a partir de l'experiència per ajudar-te a diagnosticar i solucionar els problemes més comuns sobre la marxa.
| Símptoma | Causa Probable | Solució |
|---|---|---|
| La data és l'any 52361 o algun altre futur llunyà. | Mil·lisegons vs. Segons. Estàs passant un timestamp de 13 dígits a una funció que espera un timestamp de 10 dígits. | Divideix el timestamp per 1000 abans de processar-lo. Sempre valida el nombre de dígits dels timestamps entrants. |
| L'hora està desfasada unes quantes hores, però la data és correcta. | Maneig Incorrecte del Fus Horari. El timestamp es va convertir utilitzant l'hora local del servidor en comptes de l'usuari o UTC. | Assegura't que totes les conversions especifiquin explícitament el fus horari objectiu. Converteix a l'hora local només al costat del client. |
| La data està bloquejada en 1 de gener de 1970. | Timestamp Invàlid o Null. El valor del timestamp és probablement 0, null, o undefined. |
Afegeix una comprovació per assegurar-te que el timestamp és un enter positiu vàlid abans d'intentar la conversió. Proporciona un valor de reserva. |
Obtenint "Data Invàlida" o un error NaN. |
Tipus de Dades Incorrecte. El timestamp s'està tractant com una cadena o un altre tipus no numèric quan es requereix un número. | Parsa explícitament el timestamp a un enter (parseInt() en JS, int() en Python) abans d'utilitzar-lo en funcions de data. |
Recorda, una ràpida comprovació de l'entrada pot estalviar-te hores de depuració més endavant.
Evitar Ambigüitats amb Formats Estàndard
Confiar en timestamps d'enters en brut quan passes dades entre sistemes pot ser una recepta per a la confusió. Per això, estandarditzar en un format de cadena universal com ISO 8601 (2022-05-17T12:00:00Z) és una gran jugada defensiva. Convertir timestamps Unix (per exemple, 1652905200) a un format clar i auto-documentat com aquest ajuda a prevenir errors en un estimat del 37% de les crides API entre fusos horaris.
Tenint en compte que 72% de les empreses Fortune 500 utilitzen timestamps Unix per a l'anàlisi de registres, on un sol error pot costar més de $10,000 per hora en temps d'inactivitat, la precisió ho és tot. Pots llegir més sobre com s'utilitza el temps epoch en diferents indústries a EpochConverter.
Per aquells que gestionen bases de dades, un maneig consistent dels timestamps és igual de crític. Si et trobes freqüentment lluitant amb diferents formats de timestamps a la teva base de dades, la nostra guia sobre com utilitzar un potent formatador SQL pot ajudar-te a mantenir les teves consultes netes i predecibles.
Aquest arbre de decisions t'ajuda a escollir la comanda correcta per al teu sistema operatiu, prevenint errors de sintaxi quan necessites una conversió ràpida.

El diagrama de flux anterior mostra clarament la diferència crucial de sintaxi entre la comanda date en Linux (-d @...) i macOS (-r ...)—una trampa comuna per als desenvolupadors que treballen en diferents entorns.
Per blindar el teu codi, sempre implementa comprovacions per validar la longitud d'un timestamp entrant. Una funció senzilla que comprova si és un valor de 10 dígits (segons) o de 13 dígits (mil·lisegons) pot detectar aquests errors abans que mai contaminin la lògica de la teva aplicació.
Preguntes Comuns sobre Timestamps Unix
Un cop et familiaritzis amb els timestamps Unix, algunes preguntes pràctiques apareixen gairebé sempre. He vist com aquestes confonen desenvolupadors de tots els nivells, així que aclarim els dubtes sobre les més comunes que trobaràs en el teu treball diari.
Per què Tantes APIs Utilitzen Timestamps en comptes de Cadenes ISO 8601?
Realment es redueix a l'eficiència en brut. Un timestamp Unix és només un número, cosa que el fa increïblement compacte en comparació amb una cadena com '2023-10-27T10:00:00Z'.
Aquest tamany més petit significa menys dades per enviar per la xarxa, cosa que estalvia amplada de banda i pot accelerar les respostes de l'API.
També són completament independents de l'idioma. No hi ha ambigüitat, ni peculiaritats de parseig, ni formatatge regional del qual preocupar-se. Per a una màquina, processar números és sempre més ràpid que parsejar cadenes, així que qualsevol càlcul de dates—com ara calcular el temps entre dos esdeveniments—és computacionalment més barat. Per a sistemes d'alta rendiment, aquesta simplicitat és una gran victòria.
Quina és la manera correcta de gestionar les zones horàries?
Aquest és el gran tema. Aquí teniu la regla d'or: Un timestamp Unix és sempre, sempre en UTC. No té cap concepte d'una zona horària incorporat. És només un recompte brut de segons des de l'epoch.
Les zones horàries només importen quan necessiteu mostrar aquest timestamp a un humà.
El meu consell? Mantingueu-vos en UTC per a tot al backend. Emmagatzemeu-ho a la vostra base de dades com un timestamp UTC, passeu-ho a través de les vostres APIs en UTC, i feu tota la vostra lògica del servidor en UTC. L'única vegada que hauríeu de convertir-ho a una zona horària local és al front-end, just abans de mostrar-ho a l'usuari. Aquesta única pràctica us salvarà d'un univers sencer de bugs relacionats amb zones horàries i estalvi d'horari d'estiu.
Haig de preocupar-me encara pel problema de l'any 2038?
Per a la majoria de nous projectes, probablement no. El "Problema de l'any 2038" és un ressac dels sistemes més antics que utilitzaven un enter signat de 32 bits per emmagatzemar el timestamp. Un cop aquest número es fa massa gran, es reinicia i es torna negatiu, enviant les dates enrere fins al 1901.
Afortunadament, gairebé tots els sistemes moderns—des de sistemes operatius fins a bases de dades—han passat fa temps a enters de 64 bits. Això efectivament allunya el problema tant que ja no és una preocupació pràctica per a nosaltres.
Dita això, si esteu mantenint un sistema llegat o treballant amb maquinari integrat (penseu en dispositius IoT), és definitivament alguna cosa de la qual cal estar al corrent. Sempre sabeu quin tipus d'arquitectura esteu construint.
Com puc convertir ràpidament un timestamp a Excel o Google Sheets?
No cal que extreu les vostres dades en un conversor de timestamp Unix separat per a això. Una fórmula senzilla farà el truc. Suposant que el vostre timestamp està a la cel·la A1:
- Per a timestamps en segons (10 dígits):
=A1 / 86400 + DATE(1970,1,1) - Per a timestamps en mil·lisegons (13 dígits):
=A1 / 86400000 + DATE(1970,1,1)
Només cal que poseu aquesta fórmula, després formatar la cel·la com a "Data" o "Data Hora". És un salvavides quan esteu analitzant ràpidament les exportacions de dades i no voleu trencar el vostre flux.
Esteu cansats de canviar constantment entre el vostre editor, la línia de comandes i una dotzena de pestanyes del navegador per a tasques simples? La suite ShiftShift Extensions agrupa un potent conversor de timestamps Unix, formatador JSON, embellidor SQL, i més directament al vostre navegador. Tot el que necessiteu és només a un drecera de teclat de distància.
Obteniu ShiftShift Extensions i simplifiqueu el vostre flux de treball avui a https://shiftshift.app