Ресурсы для разработчиков и код

Здесь вы можете найти примеры кода для работы с временными метками Unix на различных языках программирования. Выберите язык из вариантов ниже:

Get Current Timestamp

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

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

Convert Timestamp to Date

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

Convert Date to Timestamp

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

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

Note:

JavaScript's Date.now() returns milliseconds. Divide by 1000 for seconds.

When converting from seconds to Date object, multiply by 1000.

Get Current Timestamp

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)

Convert Timestamp to Date

Python
import time
import datetime

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

Convert Date to Timestamp

Python
import datetime

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

# Convert 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)

Note:

Python's time.time() returns floating-point seconds. Use int() for whole seconds.

For timezone handling, consider using the pytz library for more robust timezone support.

Get Current Timestamp

Java
import java.time.Instant;

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

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

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

Convert Timestamp to Date

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

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

Convert Date to 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) {
        // Convert 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
    }
}

Note:

Java 8+ introduced the java.time package with better date/time handling.

Use Instant for UTC timestamps and ZonedDateTime for timezone-aware operations.

Get Current Timestamp

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

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

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

Convert Timestamp to Date

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

Convert Date to Timestamp

PHP
<?php
// Convert 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
?>

Note:

PHP's time() returns seconds. Use microtime(true) for fractional seconds.

Be aware of timezone settings when using date() and strtotime() functions.

Get Current Timestamp

Go
package main

import (
    "fmt"
    "time"
)

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

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

Convert Timestamp to Date

Go
package main

import (
    "fmt"
    "time"
)

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

Convert Date to Timestamp

Go
package main

import (
    "fmt"
    "time"
)

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

Note:

Go uses the reference time "2006-01-02 15:04:05" for time formatting layouts.

Use time.Now().Unix() for seconds and time.Now().UnixMilli() for milliseconds (Go 1.17+).

Get Current Timestamp

C#
using System;

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

        // Get current Unix timestamp (milliseconds)
        long timestampInMilliseconds = now.ToUnixTimeMilliseconds();
        Console.WriteLine(timestampInMilliseconds);

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

Convert Timestamp to Date

C#
using System;

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

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

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

Convert Date to Timestamp

C#
using System;
using System.Globalization;

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

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

Note:

Use DateTimeOffset for Unix timestamp operations in .NET Standard 2.0+.

Be careful with DateTimeKind when working with DateTime objects.

Get Current Timestamp

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

Convert Timestamp to Date

Ruby
require 'time'

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

Convert Date to Timestamp

Ruby
require 'time'

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

Note:

Ruby's Time.now.to_i returns seconds. Use (Time.now.to_f * 1000).to_i for milliseconds.

For complex timezone handling, consider using the tzinfo gem.

Get Current Timestamp

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;

Convert Timestamp to Date

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;

Convert Date to 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;

Note:

Different database systems have varying functions for timestamp handling.

Always consider timezone implications when working with timestamps in databases.

Get Current Timestamp

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)

Convert Timestamp to Date

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

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

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

' Convert 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()

Note:

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.