Cos'è la conversione del fuso orario?
Un convertitore di fuso orario traduce una data e un orario da un fuso all'altro, permettendoti di vedere immediatamente qual è l'orario equivalente in qualsiasi parte del mondo. Il mondo è diviso in 24 fusi orari principali, ciascuno definito come uno scostamento fisso rispetto all'orario universale coordinato (UTC). Quando sono le 14:00 UTC, a New York sono le 09:00 (UTC-5) e a Tokyo le 23:00 (UTC+9). Per convertire correttamente tra fusi orari è necessario conoscere l'offset UTC sia del fuso di partenza che di quello di destinazione, e se l'ora legale (DST) è in vigore per uno o entrambi.
Il database dei fusi orari IANA (spesso chiamato database Olson o tz database) è la fonte standard delle definizioni dei fusi orari utilizzata da sistemi operativi, linguaggi di programmazione e browser. Assegna un identificatore canonico a ogni fuso nel formato Regione/Città, come America/New_York o Asia/Tokyo. A differenza delle abbreviazioni fisse come EST o PST, gli identificatori IANA codificano l'intera cronologia delle variazioni dell'offset UTC e delle transizioni DST per ogni regione, rendendoli l'unico metodo affidabile per convertire orari su date passate o future.
Questo convertitore di fuso orario utilizza i dati IANA integrati nel motore JavaScript del browser tramite l'API Intl. Selezioni un fuso orario di partenza, inserisci una data e un orario, e lo strumento calcola immediatamente l'orario equivalente nel fuso di destinazione, incluse le eventuali correzioni per l'ora legale. Poiché funziona interamente nel browser, non c'è alcuna richiesta al server e nessun dato lascia il tuo dispositivo.
Perché usare questo convertitore di fuso orario?
Il calcolo manuale dei fusi orari è soggetto a errori, specialmente quando è coinvolta l'ora legale. Una città che è UTC-5 a gennaio può essere UTC-4 a luglio, e le date di transizione variano da paese a paese. Gli Stati Uniti e l'Europa cambiano l'ora in domeniche diverse, creando una finestra di due settimane in cui lo scarto tra New York e Londra differisce dal resto dell'anno. Questo strumento gestisce automaticamente tutte queste transizioni usando lo stesso database IANA utilizzato dal tuo sistema operativo.
Casi d'uso del convertitore di fuso orario
Riferimento ai fusi orari IANA
Il database dei fusi orari IANA definisce oltre 400 identificatori di fuso orario, e viene aggiornato più volte all'anno per riflettere cambiamenti politici, nuove regole DST e correzioni storiche. La tabella seguente elenca i fusi più comunemente usati con i loro offset UTC standard e il comportamento DST. Gli offset mostrati si riferiscono all'ora solare; la colonna DST mostra l'offset modificato quando l'ora legale è attiva per quella regione.
| Identificatore IANA | Nome comune | Offset UTC | DST |
|---|---|---|---|
| UTC | Coordinated Universal Time | +00:00 | No |
| America/New_York | Eastern Time (US) | -05:00 | Yes (EDT -04:00) |
| America/Chicago | Central Time (US) | -06:00 | Yes (CDT -05:00) |
| America/Denver | Mountain Time (US) | -07:00 | Yes (MDT -06:00) |
| America/Los_Angeles | Pacific Time (US) | -08:00 | Yes (PDT -07:00) |
| Europe/London | Greenwich Mean Time | +00:00 | Yes (BST +01:00) |
| Europe/Berlin | Central European Time | +01:00 | Yes (CEST +02:00) |
| Europe/Moscow | Moscow Time | +03:00 | No |
| Asia/Dubai | Gulf Standard Time | +04:00 | No |
| Asia/Kolkata | India Standard Time | +05:30 | No |
| Asia/Shanghai | China Standard Time | +08:00 | No |
| Asia/Tokyo | Japan Standard Time | +09:00 | No |
| Australia/Sydney | Australian Eastern Time | +10:00 | Yes (AEDT +11:00) |
| Pacific/Auckland | New Zealand Standard Time | +12:00 | Yes (NZDT +13:00) |
Esempi di codice
Tutti i principali linguaggi di programmazione offrono la conversione dei fusi orari tramite il database IANA. Gli esempi seguenti mostrano come convertire un timestamp UTC in altri fusi orari in JavaScript tramite l'API Intl, in Python con il modulo zoneinfo, in Go con il pacchetto time, e con il comando GNU date per gli script di shell.
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')
// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"
const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"
// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
const fmt = new Intl.DateTimeFormat('en-US', {
timeZone: tz,
timeZoneName: 'longOffset',
})
const parts = fmt.formatToParts(date)
return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"from datetime import datetime
from zoneinfo import ZoneInfo
# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))
# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny) # → 2026-03-15 05:00:00-04:00 (EDT in March)
# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo) # → 2026-03-15 18:00:00+09:00
# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z')) # → 2026-03-15 10:00 CETpackage main
import (
"fmt"
"time"
)
func main() {
utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)
// Load timezone by IANA name
ny, _ := time.LoadLocation("America/New_York")
tokyo, _ := time.LoadLocation("Asia/Tokyo")
fmt.Println(utc.In(ny)) // → 2026-03-15 05:00:00 -0400 EDT
fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST
// Get the UTC offset in seconds
_, offset := utc.In(ny).Zone()
fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}# Display current time in a specific timezone TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z' # → 2026-03-15 18:00:00 JST # Convert a UTC timestamp to another timezone TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z' # → 2026-03-15 02:00 PDT # List all available IANA timezone names timedatectl list-timezones | head -20