UnixEpoch

Sumber Pembangun & Petikan Kod

Di sini anda boleh melihat contoh kod untuk bekerja dengan Unix timestamp dalam pelbagai bahasa pengaturcaraan. Pilih bahasa daripada pilihan di bawah:

Snippet cap masa Unix mengikut bahasa

Di sini anda boleh melihat contoh kod untuk bekerja dengan Unix timestamp dalam pelbagai bahasa pengaturcaraan. Pilih bahasa daripada pilihan di bawah:

Alat berkaitan: Epoch Tukarer, Date Tukarer, Locale Tukarer, Locale Tukarer Guide, Unix ms to Date, Penukar zon waktu

Soalan lazim

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.

Dapatkan cap masa semasa

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

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

Tukar cap masa kepada tarikh

JavaScript
// Tukar 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

Tukar tarikh kepada cap masa

JavaScript
// Tukar 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

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

Nota:

Date.now() dalam JavaScript mengembalikan milisaat. Bahagikan dengan 1000 untuk mendapatkan saat.

Apabila menukar daripada saat kepada objek Date, darabkan dengan 1000.

Dapatkan cap masa semasa

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)

Tukar cap masa kepada tarikh

Python
import time
import datetime

# Tukar 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'

Tukar tarikh kepada cap masa

Python
import datetime

# Tukar 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')

# Tukar 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() dalam Python mengembalikan saat perpuluhan. Gunakan int() untuk saat penuh.

Untuk pengendalian zon waktu, pertimbangkan penggunaan pustaka pytz bagi sokongan yang lebih kukuh.

Dapatkan cap masa semasa

Java
import java.time.Instant;

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

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

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

Tukar cap masa kepada tarikh

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

public class TimestampToDateExample {
    public static void main(String[] args) {
        // Tukar 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"
    }
}

Tukar tarikh kepada cap masa

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) {
        // Tukar 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+ memperkenalkan pakej java.time dengan pengendalian tarikh/masa yang lebih baik.

Gunakan Instant untuk cap masa UTC dan ZonedDateTime untuk operasi yang peka zon waktu.

Dapatkan cap masa semasa

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

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

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

Tukar cap masa kepada tarikh

PHP
<?php
// Tukar 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');
?>

Tukar tarikh kepada cap masa

PHP
<?php
// Tukar 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() dalam PHP mengembalikan saat. Gunakan microtime(true) untuk saat pecahan.

Ambil perhatian terhadap tetapan zon waktu apabila menggunakan fungsi date() dan strtotime().

Dapatkan cap masa semasa

Go
package main

import (
    "fmt"
    "time"
)

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

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

Tukar cap masa kepada tarikh

Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Tukar 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"))
}

Tukar tarikh kepada cap masa

Go
package main

import (
    "fmt"
    "time"
)

func main() {
    // Tukar 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 menggunakan masa rujukan "2006-01-02 15:04:05" untuk susun atur pemformatan masa.

Gunakan time.Now().Unix() untuk saat dan time.Now().UnixMilli() untuk milisaat (Go 1.17+).

Dapatkan cap masa semasa

C#
using System;

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

        // Get current Unix timestamp (milliseconds)
        long timestampInMilisaat = now.ToUnixTimeMilisaat();
        Console.WriteLine(timestampInMilisaat);

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

Tukar cap masa kepada tarikh

C#
using System;

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

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

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

Tukar tarikh kepada cap masa

C#
using System;
using System.Globalization;

class Program
{
    static void Main()
    {
        // Tukar 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);

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

Nota:

Gunakan DateTimeOffset untuk operasi cap masa Unix dalam .NET Standard 2.0+.

Berhati-hati dengan DateTimeKind apabila bekerja dengan objek DateTime.

Dapatkan cap masa semasa

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

Tukar cap masa kepada tarikh

Ruby
require 'time'

# Tukar 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

Tukar tarikh kepada cap masa

Ruby
require 'time'

# Tukar 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 dalam Ruby mengembalikan saat. Gunakan (Time.now.to_f * 1000).to_i untuk milisaat.

Untuk pengendalian zon waktu yang kompleks, pertimbangkan penggunaan gem tzinfo.

Dapatkan cap masa semasa

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;

Tukar cap masa kepada tarikh

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;

Tukar tarikh kepada cap masa

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:

Sistem pangkalan data yang berbeza mempunyai fungsi yang berbeza untuk pengendalian cap masa.

Sentiasa pertimbangkan implikasi zon waktu apabila bekerja dengan cap masa dalam pangkalan data.

Dapatkan cap masa semasa

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)

Tukar cap masa kepada tarikh

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

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

' Tukar 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
' Tukar Unix timestamp to Excel date
Function UnixToExcelDate(UnixTimestamp As Long) As Date
    UnixToExcelDate = DateTambah("s", UnixTimestamp, DateSerial(1970, 1, 1))
End Function

' Tukar 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.