Estrarre data di scatto EXIF
Trasformi la data scritta dalla sua fotocamera, 2023:06:15 14:30:45, in data e ora leggibili: 2023-06-15 e 14:30:45, più il valore combinato 2023-06-15T14:30:45. I giorni impossibili vengono rifiutati e nessun fuso orario viene inventato. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Data e ora originali
- 2023:06:15 14:30:45
- Data
- 2023-06-15
- Tempo
- 14:30:45
- Iso
- 2023-06-15T14:30:45
- Anno
- 2023
Fotocamere e telefoni scrivono l'istante dello scatto nell'etichetta EXIF DateTimeOriginal con un formato particolare separato da due punti: anno, mese e giorno uniti da due punti, uno spazio e poi ore, minuti e secondi. Le pipeline che ordinano gallerie, costruiscono linee temporali o marcanomi di file hanno bisogno di quell'istante come data di calendario ISO e ora di orologio normali, non come testo EXIF grezzo. Questa capacità accetta la stringa DateTimeOriginal, la convalida come giorno gregoriano reale e ora di orologio valida e restituisce YYYY-MM-DD, HH:MM:SS e un datetime locale ISO-8601 combinato senza inventare un fuso orario.
Come appare EXIF DateTimeOriginal e perché conta l'ISO
Ogni fotocamera digitale che incorpora metadati Exif può memorizzare l'istante di cattura in DateTimeOriginal. La specifica Exif 2.x registra quel valore in venti caratteri con forma rigida: quattro cifre per l'anno, due punti, due cifre per il mese, altri due punti, due cifre per il giorno, un solo spazio e poi ora, minuto e secondo a due cifre separati da due punti. Quel layout non è ISO-8601 e non è un timestamp Unix.
Ordinare le stringhe in modo lessicografico funziona solo perché l'anno viene prima; unire valori EXIF a fogli di calcolo, colonne SQL di data o costruttori Date di JavaScript fallisce se non si riscrivono i due punti nella parte data. Ai fotografi importa anche che DateTimeOriginal sia l'ora di scatto, non FileModifyDate né il timbro dell'ultima modifica che i software di editing riscrivono.
Convertire DateTimeOriginal in una data ISO (YYYY-MM-DD), un'ora ISO (HH:MM:SS) e una stringa ISO locale combinata (YYYY-MM-DDTHH:MM:SS) le fornisce campi che database, importatori CSV e selettori data del frontend già comprendono. Questo strumento non apre il file immagine: Lei passa la stringa dell'etichetta già letta da una libreria EXIF, un dump o un sidecar. Ciò mantiene la capacità in parse puro di livello A, gratis nel browser e deterministica per i test.
Quando l'etichetta è assente, vuota o fuori dal pattern atteso, l'attività fallisce invece di indovinare.
Contratto di ingresso, forma della risposta e regole di convalida
Il valore deve corrispondere a YYYY:MM:DD HH:MM:SS dopo il trim; è ammesso un solo spazio o la lettera T tra data e ora così i dump già vicini all'ISO si analizzano ancora se la data mantiene i due punti EXIF. L'anno deve essere tra 0001 e 9999. Il mese deve essere 01–12.
Il giorno deve esistere in quel mese secondo la regola gregoriana degli anni bisestili (febbraio ha ventinove giorni solo quando l'anno è divisibile per quattro, tranne i secoli non divisibili per quattrocento). L'ora è 00–23; minuto e secondo sono 00–59. Esempio: 2023:06:15 14:30:45 diventa date 2023-06-15, time 14:30:45 e iso 2023-06-15T14:30:45.
Esempio di giorno bisestile: 2024:02:29 00:00:00 ha successo; 2023:02:29 12:00:00 fallisce.
Dove estrarre la data della foto da EXIF conviene
Agenzie fotografiche e sistemi DAM normalizzano le date di scatto prima dell'import così le ricerche per giorno di sessione restano accurate anche quando i file sono stati copiati tra macchine che hanno riscritto gli mtime. Redazioni giornalistiche e flussi di prova legale necessitano di un'analisi difendibile del DateTimeOriginal della fotocamera, non di una data libera in testo. Pipeline social e di e-commerce che rinomina gli upload con la data di scatto chiamano un piccolo passo di parse dopo l'estrazione EXIF in blocco perché i nomi file restino stabili.
I siti di contenuti che si posizionano su frasi come estrarre data di scatto foto da EXIF traggono vantaggio da una landing mirata che risponde a quell'intento senza il rumore di uno strumento di dump EXIF completo. La convalida fallita non consuma saldo.
Casi d'uso
Import DAM e gallerie
Converta EXIF DateTimeOriginal dall'ingestione massiva di foto in date ISO per ordinare album, filtri e colonne di database.
Marcatura di nomi e linee temporali
Costruisca nomi di file con la data di scatto e linee temporali editoriali dall'etichetta della fotocamera senza fidarsi dell'ora di modifica del file.
Controlli di prova e conformità
Convalidi che un timestamp di scatto dichiarato corrisponda a un DateTimeOriginal EXIF ben formato prima di archiviare o esportare per discovery.
Domande frequenti
Qual è il formato di EXIF DateTimeOriginal?
Le fotocamere lo memorizzano come YYYY:MM:DD HH:MM:SS con due punti nella parte data. Questo strumento analizza quella stringa in data ISO, ora e datetime locale ISO combinato.
Questo strumento legge il file immagine?
No. Passi la stringa DateTimeOriginal già estratta. Così la capacità resta parse puro, gratis nel browser e senza I/O binario.
Cosa succede se l'etichetta manca o è malformata?
Valori vuoti, separatori errati, giorni di calendario impossibili e orari fuori intervallo vengono tutti rifiutati.
Il risultato è consapevole del fuso orario?
No. EXIF DateTimeOriginal è un timbro di orologio locale senza zona. Il campo iso è YYYY-MM-DDTHH:MM:SS senza Z né offset così non si inventa un fuso orario.
Perché usare la data di scatto e non la data di modifica del file?
Perché la data di scatto indica quando è stata fatta la foto, mentre la data di modifica cambia ogni volta che il file viene copiato su un altro computer o ritoccato. Ordinare per data di scatto mantiene ogni servizio nel suo ordine reale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/image/exif-date-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime_original":"2023:06:15 14:30:45"}'const res = await fetch("https://api.kit.forhosting.com/image/exif-date-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime_original": "2023:06:15 14:30:45"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exif-date-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime_original": "2023:06:15 14:30:45"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exif-date-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime_original":"2023:06:15 14:30:45"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime_original":"2023:06:15 14:30:45"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exif-date-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"datetime_original": "2023:06:15 14:30:45"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_date_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 15 |
max_megapixels | 12 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Etichette mancanti e valori malformati falliscono in modo pulito con invalid_input così l'automazione non tratta mai spazzatura come un'analisi riuscita.
Come appare EXIF DateTimeOriginal e perché conta l'ISO
Quando il giorno di calendario è impossibile — trentuno febbraio, ora venticinque o ventinove febbraio in anno non bisestile — lo stesso percorso invalid_input protegge i chiamanti da corruzione silenziosa. Usi il campo iso quando serve una sola colonna; usi date e time quando lo schema separa il giorno di calendario dall'ora di orologio.
Contratto di ingresso, forma della risposta e regole di convalida
Invii un corpo JSON con il campo stringa obbligatorio datetime_original. Gli alias date_time_original, exif_datetime e taken_at sono accettati per comodità quando il lettore EXIF a monte usa un'altra chiave. In caso di successo la risposta ripete un datetime_original canonico con un solo spazio come separatore, più date, time, iso e i componenti interi year, month, day, hour, minute e second così i client possono formattare senza rianalizzare. Campi mancanti, tipi non stringa, separatori errati come 2023-06-15 14:30:45 senza due punti EXIF nella data e componenti fuori intervallo generano invalid_input e non vengono addebitati.
Dove estrarre la data della foto da EXIF conviene
Le app mobili che leggono già EXIF in processo possono ancora chiamare questo endpoint quando una pipeline lato server deve rivalidare la stessa stringa prima di scrivere su Postgres TIMESTAMPTZ o su un'API JSON.
Domande tecniche
Quanto costa estrarre la data della foto da EXIF?
Lo strumento nel browser è gratis. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non viene addebitato.