UnixEpoch

Risorse per sviluppatori e snippet di codice

Qui trovi esempi di codice per lavorare con i timestamp Unix in diversi linguaggi di programmazione. Seleziona un linguaggio dalle opzioni qui sotto:

Snippet Unix timestamp per linguaggio

Qui trovi esempi di codice per lavorare con i timestamp Unix in diversi linguaggi di programmazione. Seleziona un linguaggio dalle opzioni qui sotto:

Strumenti correlati: Epoch Convertier, Date Convertier, Locale Convertier, Locale Convertier Guide, Unix ms to Date, Convertitore di fuso orario

Domande frequenti

How do I get the current Unix timestamp in JavaScript? Use Math.floor(Date.now() / 1000) for Unix seconds or Date.now() for Unix milliseconds in JavaScript.

How do I convert epoch to datetime in Python, PHP, or SQL? Use the language-specific examples on this page to parse Unix timestamps into UTC or local datetime output for debugging, APIs, and database work.

What is the difference between Unix seconds and Unix milliseconds in code? Unix seconds are usually 10 digits and are common in backend systems. Unix milliseconds are usually 13 digits and are common in JavaScript, analytics, and browser events.

Ottieni timestamp corrente

JavaScript
// Get current Unix timestamp (seconds)
const timestampInSecondi = Math.floor(Date.now() / 1000);
console.log(timestampInSecondi);

// Get current Unix timestamp (milliseconds)
const timestampInMillisecondi = Date.now();
console.log(timestampInMillisecondi);

Converti timestamp in data

JavaScript
// Converti Unix timestamp to date
const timestamp = 1609459200; // 2021-01-01 00:00:00 UTC
const date = new Date(timestamp * 1000);

console.log(date.toISOString()); // "2021-01-01T00:00:00.000Z"
console.log(date.toLocaleString()); // Localized format

Converti data in timestamp

JavaScript
// Converti date string to Unix timestamp
const dateString = '2021-01-01T00:00:00Z';
const timestamp = Math.floor(new Date(dateString).getTime() / 1000);
console.log(timestamp); // 1609459200

// Converti Date object to Unix timestamp
const date = new Date(2021, 0, 1); // Nota: mesi start at 0
const timestampFromDate = Math.floor(date.getTime() / 1000);
console.log(timestampFromDate);

Nota:

Date.now() in JavaScript restituisce millisecondi. Dividi per 1000 per ottenere i secondi.

Quando converti da secondi a un oggetto Date, moltiplica per 1000.

Ottieni timestamp corrente

Python
import time
import datetime

# Get current Unix timestamp (seconds)
timestamp_seconds = int(time.time())
print(timestamp_seconds)

# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = int(time.time() * 1000)
print(timestamp_milliseconds)

# Using datetime
dt = datetime.datetime.now()
timestamp_from_datetime = int(dt.timestamp())
print(timestamp_from_datetime)

Converti timestamp in data

Python
import time
import datetime

# Converti Unix timestamp to date
timestamp = 1609459200  # 2021-01-01 00:00:00 UTC

# Using time module
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))
print(date_str)  # '2021-01-01 00:00:00'

# Using datetime module
date_obj = datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone.utc)
print(date_obj.strftime('%Y-%m-%d %H:%M:%S'))  # '2021-01-01 00:00:00'

Converti data in timestamp

Python
import datetime

# Converti date string to Unix timestamp
date_string = '2021-01-01 00:00:00'
date_obj = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')

# Converti to timestamp (assumes local timezone)
timestamp = int(date_obj.timestamp())
print(timestamp)

# Explicitly specify UTC timezone
date_obj_utc = date_obj.replace(tzinfo=datetime.timezone.utc)
timestamp_utc = int(date_obj_utc.timestamp())
print(timestamp_utc)

Nota:

time.time() in Python restituisce secondi in virgola mobile. Usa int() per secondi interi.

Per la gestione dei fusi orari, valuta l’uso della libreria pytz per un supporto più robusto.

Ottieni timestamp corrente

Java
import java.time.Instant;

public class TimestampExample {
    public static void main(String[] args) {
        // Get current Unix timestamp (seconds)
        long timestampInSecondi = Instant.now().getEpochSecond();
        System.out.println(timestampInSecondi);

        // Get current Unix timestamp (milliseconds)
        long timestampInMillisecondi = Instant.now().toEpochMilli();
        System.out.println(timestampInMillisecondi);

        // Traditional method
        long currentTimeMillis = System.currentTimeMillis();
        long timestampSecondi = currentTimeMillis / 1000L;
        System.out.println(timestampSecondi);
    }
}

Converti timestamp in data

Java
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class TimestampToDateExample {
    public static void main(String[] args) {
        // Converti Unix timestamp to date
        long timestamp = 1609459200L; // 2021-01-01 00:00:00 UTC

        // Using Instant and formatter
        Instant instant = Instant.ofEpochSecond(timestamp);
        DateTimeFormatter formatter = DateTimeFormatter
            .ofPattern("yyyy-MM-dd HH:mm:ss")
            .withZone(ZoneId.of("UTC"));

        String formattedDate = formatter.format(instant);
        System.out.println(formattedDate); // "2021-01-01 00:00:00"
    }
}

Converti data in timestamp

Java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class DateToTimestampExample {
    public static void main(String[] args) {
        // Converti date string to Unix timestamp
        String dateString = "2021-01-01 00:00:00";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        // Parse and convert to timestamp (assuming UTC)
        LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
        ZonedDateTime zonedDateTime = dateTime.atZone(ZoneId.of("UTC"));
        long timestamp = zonedDateTime.toEpochSecond();

        System.out.println(timestamp); // 1609459200
    }
}

Nota:

Java 8+ ha introdotto il pacchetto java.time con una migliore gestione di data e ora.

Usa Instant per i timestamp UTC e ZonedDateTime per operazioni consapevoli del fuso orario.

Ottieni timestamp corrente

PHP
<?php
// Get current Unix timestamp (seconds)
$timestampInSecondi = time();
echo $timestampInSecondi;

// Get current Unix timestamp (milliseconds)
$timestampInMillisecondi = round(microtime(true) * 1000);
echo $timestampInMillisecondi;

// Using DateTime class
$dateTime = new DateTime();
$timestampFromDateTime = $dateTime->getTimestamp();
echo $timestampFromDateTime;
?>

Converti timestamp in data

PHP
<?php
// Converti Unix timestamp to date
$timestamp = 1609459200; // 2021-01-01 00:00:00 UTC

// Using date function (local timezone)
$dateFormatted = date('Y-m-d H:i:s', $timestamp);
echo $dateFormatted;

// Using gmdate for UTC
$dateFormattedUTC = gmdate('Y-m-d H:i:s', $timestamp);
echo $dateFormattedUTC; // "2021-01-01 00:00:00"

// Using DateTime class
$dateTime = new DateTime("@$timestamp");
$dateTime->setTimezone(new DateTimeZone('UTC'));
echo $dateTime->format('Y-m-d H:i:s');
?>

Converti data in timestamp

PHP
<?php
// Converti date string to Unix timestamp
$dateString = '2021-01-01 00:00:00';

// Using strtotime (assumes local timezone)
$timestamp = strtotime($dateString);
echo $timestamp;

// Specify UTC timezone
$timestampUTC = strtotime($dateString . ' UTC');
echo $timestampUTC;

// Using DateTime class with timezone
$dateTime = new DateTime($dateString, new DateTimeZone('UTC'));
$timestamp = $dateTime->getTimestamp();
echo $timestamp; // 1609459200
?>

Nota:

time() in PHP restituisce secondi. Usa microtime(true) per secondi frazionari.

Fai attenzione alle impostazioni del fuso orario quando usi le funzioni date() e strtotime().

Ottieni timestamp corrente

Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Get current Unix timestamp (seconds)
    timestampInSecondi := time.Now().Unix()
    fmt.Println(timestampInSecondi)

    // Get current Unix timestamp (milliseconds)
    // UnixMilli() requires Go 1.17+, using UnixNano() for better compatibility
    timestampInMillisecondi := time.Now().UnixNano() / int64(time.Millisecond)
    fmt.Println(timestampInMillisecondi)
}

Converti timestamp in data

Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Converti Unix timestamp to date
    timestamp := int64(1609459200) // 2021-01-01 00:00:00 UTC

    // Create time object
    t := time.Unix(timestamp, 0)

    // Format date (UTC)
    fmt.Println(t.UTC().Format("2006-01-02 15:04:05"))

    // Format date (local timezone)
    fmt.Println(t.Format("2006-01-02 15:04:05"))
}

Converti data in timestamp

Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Converti date string to Unix timestamp
    dateString := "2021-01-01 00:00:00"

    // Parse date string (assuming UTC)
    // Go uses the reference time "2006-01-02 15:04:05" for time formatting layouts
    t, err := time.Parse("2006-01-02 15:04:05", dateString)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Get Unix timestamp
    timestamp := t.Unix()
    fmt.Printf("Timestamp: %d\n", timestamp) // 1609459200
}

Nota:

Go usa l’ora di riferimento "2006-01-02 15:04:05" per i layout di formattazione del tempo.

Usa time.Now().Unix() per i secondi e time.Now().UnixMilli() per i millisecondi (Go 1.17+).

Ottieni timestamp corrente

C#
using System;

class Program
{
    static void Main()
    {
        // Get current Unix timestamp (seconds)
        DateTimeOffset now = DateTimeOffset.UtcNow;
        long timestampInSecondi = now.ToUnixTimeSecondi();
        Console.WriteLine(timestampInSecondi);

        // Get current Unix timestamp (milliseconds)
        long timestampInMillisecondi = now.ToUnixTimeMillisecondi();
        Console.WriteLine(timestampInMillisecondi);

        // Alternative method for older .NET versions
        DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        TimeSpan timeSpan = DateTime.UtcNow - unixEpoch;
        long timestampSecondiAlt = (long)timeSpan.TotalSecondi;
        Console.WriteLine(timestampSecondiAlt);
    }
}

Converti timestamp in data

C#
using System;

class Program
{
    static void Main()
    {
        // Converti Unix timestamp to date
        long timestamp = 1609459200; // 2021-01-01 00:00:00 UTC

        // Using DateTimeOffset (.NET Standard 2.0+)
        DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSecondi(timestamp);
        Console.WriteLine(dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss")); // UTC

        // Converti to local time
        DateTimeOffset localTime = dateTimeOffset.ToLocalTime();
        Console.WriteLine(localTime.ToString("yyyy-MM-dd HH:mm:ss")); // Local
    }
}

Converti data in timestamp

C#
using System;
using System.Globalization;

class Program
{
    static void Main()
    {
        // Converti date string to Unix timestamp
        string dateString = "2021-01-01 00:00:00";

        // Parse date string (assume UTC)
        DateTime dateTime = DateTime.ParseExact(
            dateString,
            "yyyy-MM-dd HH:mm:ss",
            CultureInfo.InvariantCulture,
            DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);

        // Converti to timestamp
        DateTimeOffset dateTimeOffset = new DateTimeOffset(dateTime);
        long timestamp = dateTimeOffset.ToUnixTimeSecondi();
        Console.WriteLine($"Timestamp: {timestamp}"); // 1609459200
    }
}

Nota:

Usa DateTimeOffset per le operazioni con timestamp Unix in .NET Standard 2.0+.

Fai attenzione a DateTimeKind quando lavori con oggetti DateTime.

Ottieni timestamp corrente

Ruby
# Get current Unix timestamp (seconds)
timestamp_seconds = Time.now.to_i
puts timestamp_seconds

# Get current Unix timestamp (milliseconds)
timestamp_milliseconds = (Time.now.to_f * 1000).to_i
puts timestamp_milliseconds

# Get current UTC timestamp
require 'time'
utc_timestamp = Time.now.utc.to_i
puts utc_timestamp

Converti timestamp in data

Ruby
require 'time'

# Converti Unix timestamp to date
timestamp = 1609459200  # 2021-01-01 00:00:00 UTC

# Create Time object (local timezone)
time = Time.at(timestamp)
puts time.strftime('%Y-%m-%d %H:%M:%S')

# Create UTC Time object
time_utc = Time.at(timestamp).utc
puts time_utc.strftime('%Y-%m-%d %H:%M:%S')  # "2021-01-01 00:00:00"

# ISO 8601 format
puts time_utc.iso8601

Converti data in timestamp

Ruby
require 'time'

# Converti date string to Unix timestamp
date_string = '2021-01-01 00:00:00'

# Parse date string (local timezone)
time = Time.parse(date_string)
timestamp = time.to_i
puts timestamp

# Parse date string as UTC
time_utc = Time.parse(date_string + ' UTC')
timestamp_utc = time_utc.to_i
puts timestamp_utc  # 1609459200

# More precise parsing
require 'date'
datetime = DateTime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
timestamp_from_datetime = datetime.to_time.to_i
puts timestamp_from_datetime

Nota:

Time.now.to_i in Ruby restituisce secondi. Usa (Time.now.to_f * 1000).to_i per i millisecondi.

Per una gestione complessa dei fusi orari, valuta l’uso della gem tzinfo.

Ottieni timestamp corrente

SQL
-- MySQL
SELECT UNIX_TIMESTAMP() AS current_timestamp;
SELECT UNIX_TIMESTAMP(NOW(3)) * 1000 AS current_timestamp_ms;

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW()) AS current_timestamp;
SELECT EXTRACT(EPOCH FROM NOW()) * 1000 AS current_timestamp_ms;

-- SQLite
SELECT STRFTIME('%s', 'now') AS current_timestamp;
SELECT STRFTIME('%s', 'now') * 1000 AS current_timestamp_ms;

-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp;
SELECT DATEDIFF(MILLISECOND, '1970-01-01', GETUTCDATE()) AS current_timestamp_ms;

Converti timestamp in data

SQL
-- MySQL
SELECT FROM_UNIXTIME(1609459200) AS datetime;
SELECT FROM_UNIXTIME(1609459200, '%Y-%m-%d %H:%i:%s') AS formatted_datetime;

-- PostgreSQL
SELECT TO_TIMESTAMP(1609459200) AS datetime;
SELECT TO_CHAR(TO_TIMESTAMP(1609459200), 'YYYY-MM-DD HH24:MI:SS') AS formatted_datetime;

-- SQLite
SELECT DATETIME(1609459200, 'unixepoch') AS datetime;
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 1609459200, 'unixepoch') AS formatted_datetime;

-- SQL Server
SELECT DATEADD(SECOND, 1609459200, '1970-01-01') AS datetime;

Converti data in timestamp

SQL
-- MySQL
SELECT UNIX_TIMESTAMP('2021-01-01 00:00:00') AS timestamp;

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2021-01-01 00:00:00') AS timestamp;

-- SQLite
SELECT STRFTIME('%s', '2021-01-01 00:00:00') AS timestamp;

-- SQL Server
SELECT DATEDIFF(SECOND, '1970-01-01', '2021-01-01 00:00:00') AS timestamp;

Nota:

I diversi sistemi di database hanno funzioni diverse per la gestione dei timestamp.

Considera sempre le implicazioni del fuso orario quando lavori con i timestamp nei database.

Ottieni timestamp corrente

Excel
' Get current Unix timestamp (seconds)
=INT((NOW()-DATE(1970,1,1))*86400)

' Get current Unix timestamp (milliseconds)
=INT((NOW()-DATE(1970,1,1))*86400*1000)

' Get timestamp for date in cell A1
=INT((A1-DATE(1970,1,1))*86400)

' Account for timezone (subtract 8 hours for UTC+8)
=INT((NOW()-DATE(1970,1,1)-TIME(8,0,0))*86400)

Converti timestamp in data

Excel
' Converti Unix timestamp (seconds) to Excel date
' Assuming A1 contains the timestamp
=DATE(1970,1,1)+A1/86400

' Converti Unix timestamp (milliseconds) to Excel date
=DATE(1970,1,1)+A1/86400/1000

' Converti to local timezone (add 8 hours for UTC+8)
=DATE(1970,1,1)+A1/86400+TIME(8,0,0)

' Format as text
=TEXT(DATE(1970,1,1)+A1/86400,"yyyy-mm-dd hh:mm:ss")

VBA Functions

VBA
' Converti Unix timestamp to Excel date
Function UnixToExcelDate(UnixTimestamp As Long) As Date
    UnixToExcelDate = DateAggiungi("s", UnixTimestamp, DateSerial(1970, 1, 1))
End Function

' Converti Excel date to Unix timestamp
Function ExcelDateToUnix(ExcelDate As Date) As Long
    ExcelDateToUnix = DateDiff("s", DateSerial(1970, 1, 1), ExcelDate)
End Function

' Get current Unix timestamp
Function GetCurrentUnixTimestamp() As Long
    GetCurrentUnixTimestamp = DateDiff("s", DateSerial(1970, 1, 1), Now)
End Function

' Usage examples:
' =UnixToExcelDate(1609459200)
' =ExcelDateToUnix(NOW())
' =GetCurrentUnixTimestamp()

Nota:

Excel stores dates as serial numbers, with 1970-01-01 being day 25569 in the 1900 date system.

Always consider timezone conversions when working with timestamps in Excel.

VBA functions provide more flexibility for complex timestamp operations.