# generaltranslation: General Translation Core SDK: formatDateTime URL: https://generaltranslation.com/it/docs/core/functions/formatting/format-date-time.mdx --- title: formatDateTime description: Funzione autonoma per formattare date e orari secondo le convenzioni dell'impostazione regionale --- ## Panoramica La funzione autonoma `formatDateTime` formatta date e orari secondo convenzioni specifiche dell'impostazione regionale, senza richiedere un'istanza di GT. Offre le stesse funzionalità del metodo della classe GT, ma può essere utilizzata in modo indipendente. ```typescript import { formatDateTime } from 'generaltranslation'; const formatted = formatDateTime(new Date(), { locales: 'de-DE', dateStyle: 'medium', timeStyle: 'short' }); // Restituisce: "26.09.2025, 17:33" ``` ## Riferimento ### Parametri | Name | Type | Description | | --------- | ---------------------------------------------------------- | ------------------------------------------------------- | | `date` | `Date` | L'oggetto data da formattare | | `options` | `DateTimeFormatOptions & { locales?: string \| string[] }` | Configurazione di formattazione con `locales` opzionali | ### DateTimeFormatOptions | Nome | Tipo | Descrizione | | ------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `locales?` | `string \| string[]` | Impostazioni regionali per la formattazione (per impostazione predefinita viene usata l'impostazione regionale del sistema) | | `dateStyle?` | `'full' \| 'long' \| 'medium' \| 'short'` | Stile di formattazione complessivo della data | | `timeStyle?` | `'full' \| 'long' \| 'medium' \| 'short'` | Stile di formattazione complessivo dell'ora | | `weekday?` | `'long' \| 'short' \| 'narrow'` | Rappresentazione del giorno della settimana | | `year?` | `'numeric' \| '2-digit'` | Rappresentazione dell'anno | | `month?` | `'numeric' \| '2-digit' \| 'long' \| 'short' \| 'narrow'` | Rappresentazione del mese | | `day?` | `'numeric' \| '2-digit'` | Rappresentazione del giorno | | `hour?` | `'numeric' \| '2-digit'` | Rappresentazione dell'ora | | `minute?` | `'numeric' \| '2-digit'` | Rappresentazione del minuto | | `second?` | `'numeric' \| '2-digit'` | Rappresentazione del secondo | | `timeZone?` | `string` | Identificatore del fuso orario IANA | | `hour12?` | `boolean` | Indica se utilizzare il formato orario a 12 ore | ### Restituisce `string` - La data e l'ora formattate in base alle convenzioni dell'impostazione regionale. *** ## Esempio ### Utilizzo di base ```typescript copy import { formatDateTime } from 'generaltranslation'; // Formattazione di base con impostazione regionale esplicita console.log(formatDateTime(date, { locales: 'en-US' })); // Output: "3/14/2024" // Formattazione tedesca console.log(formatDateTime(date, { locales: 'de-DE' })); // Output: "14.3.2024" // Fallback su più impostazioni regionali console.log(formatDateTime(date, { locales: ['ja-JP', 'en-US'] })); // Output: "2024/3/14" (formato giapponese) ``` ### Formati di data e ora ```typescript copy const date = new Date('2024-03-14T14:30:45Z'); // Stile data completo console.log(formatDateTime(date, { locales: 'en-US', dateStyle: 'full' })); // Output: "Thursday, March 14, 2024" // Data estesa con ora abbreviata console.log(formatDateTime(date, { locales: 'fr-FR', dateStyle: 'long', timeStyle: 'short' })); // Output: "14 mars 2024 à 07:30" // Formato abbreviato per più impostazioni regionali const locales = ['en-US', 'de-DE', 'ja-JP']; locales.forEach(locale => { console.log(`${locale}: ${formatDateTime(date, { locales: locale, dateStyle: 'short', timeStyle: 'short' })}`); }); // Output: // en-US: 3/14/24, 7:30 AM // de-DE: 14.03.24, 07:30 // ja-JP: 2024/03/14 7:30 ``` ### Gestione del fuso orario ```typescript copy const date = new Date('2024-03-14T14:30:45Z'); // Formatta per diversi fusi orari const timeZones = [ 'America/New_York', 'Europe/London', 'Asia/Tokyo' ]; timeZones.forEach(timeZone => { const formatted = formatDateTime(date, { locales: 'en-US', timeZone, dateStyle: 'medium', timeStyle: 'medium' }); console.log(`${timeZone}: ${formatted}`); }); // L'output varia in base all'ora legale ``` *** ## Note * Il parametro `locales` è facoltativo e, se non viene fornito, usa per impostazione predefinita l'impostazione regionale del sistema * Usa lo stesso `Intl.DateTimeFormat` sottostante del metodo della classe GT * I risultati vengono memorizzati internamente nella cache per migliorare le prestazioni con combinazioni ripetute di impostazione regionale e opzioni * Sono supportate tutte le opzioni standard di `Intl.DateTimeFormat` * I fusi orari vengono gestiti correttamente quando specificati * Impostazioni regionali diverse hanno formati predefiniti di data e ora diversi e preferenze differenti tra il formato a 12 ore e quello a 24 ore ## Passaggi successivi * Consulta la documentazione di [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) per ulteriori opzioni * Vedi [`formatNum`](/docs/core/functions/formatting/format-num) per la formattazione autonoma dei numeri * Vedi [`formatMessage`](/docs/core/functions/formatting/format-message) per la formattazione autonoma dei messaggi * Vedi il metodo [`formatDateTime`](/docs/core/class/methods/formatting/format-date-time) della classe GT per l'uso tramite istanza