Bộ chuyển đổi Timestamp Unix

Công cụ chuyển đổi hai chiều giữa timestamp Unix/Linux và ngày-giờ, cho phép so sánh qua nhiều múi giờ khác nhau.

Thời gian hiện tại

Dấu thời gian hiện tại (giây)
1766507958
Thời gian hiện tại
2025-12-23 16:39:18

Chuyển đổi dấu thời gian thành ngày

Kết quả chuyển đổi(tự động)

Chuyển đổi ngày thành dấu thời gian

Kết quả chuyển đổi(tự động)

Công cụ chuyển đổi ngày giờ từ nhiều dấu thời gian

Công cụ chuyển đổi ngày giờ từ nhiều dấu thời gian

Công cụ chuyển đổi dấu thời gian từ nhiều ngày giờ

Công cụ chuyển đổi dấu thời gian từ nhiều ngày giờ

Hướng dẫn sử dụng

Công cụ này được sử dụng để hoàn thành nhanh chóng việc chuyển đổi hai chiều giữa dấu thời gian Unix và ngày giờ trong các trường hợp sử dụng khác nhau. Nó hỗ trợ độ chính xác theo giây và mili giây, và bạn có thể chọn múi giờ đích để so sánh hiển thị. Cung cấp bộ chuyển đổi đơn và đa thẻ, chuyển đổi ngay khi nhập, kết quả tự động cập nhật khi chuyển đổi múi giờ. Đồng thời, có các khoảng thời gian gần đây và các khoảng thời gian thường dùng tích hợp sẵn, đáp ứng nhu cầu phát triển,调试 và chuyển đổi hàng ngày.

Nhận dạng tự động: Công cụ sẽ tự động nhận dạng xem bạn nhập là dấu thời gian theo giây (10 chữ số) hay dấu thời gian theo mili giây (13 chữ số).
Múi giờ: Hiển thị giờ địa phương và giờ UTC, thuận tiện cho việc sử dụng ở các múi giờ khác nhau.

Đặc điểm chức năng của công cụ

  • Chuyển đổi ngay khi nhập, hỗ trợ nhận dạng tự động dấu thời gian theo giây/mili giây.
  • Hỗ trợ chọn và hiển thị múi giờ toàn cầu: ba chế độ xem là địa phương, UTC và múi giờ đã chọn.
  • Nhiều thẻ bộ chuyển đổi, thuận tiện cho việc so sánh hàng loạt.
  • Giao diện đáp ứng và thân thiện với bàn phím, có khả năng truy cập tốt.
  • Có các khoảng thời gian gần đây và các khoảng thời gian thường dùng tích hợp sẵn, sao chép và sử dụng ngay.

Dấu thời gian là gì?

Dấu thời gian Unix (Unix Timestamp) là tổng số giây hoặc mili giây trôi qua kể từ 00:00:00 UTC ngày 01-01-1970 (Unix Epoch).

Dấu thời gian là một con số biểu thị thời gian, thường được tính theo giây hoặc mili giây.

Điểm bắt đầu của dấu thời gian là 00:00:00 UTC ngày 01 tháng 01 năm 1970, thời điểm này được gọi là kỷ nguyên Unix.

Dấu thời gian ban đầu được sử dụng trong hệ điều hành Unix, vì vậy thường được gọi là dấu thời gian Unix.

Dấu thời gian được sử dụng rộng rãi trong lập trình và truyền thông mạng, đặc biệt là trong phát triển Web.

Độ chính xác phổ biến: giây (ví dụ: 1735689600) và mili giây (ví dụ: 1735689600000). Khi biểu thị ngày giờ liên quan đến múi giờ, cần kết hợp với múi giờ để định dạng hiển thị.

Dấu thời gian gần đây (dựa trên múi giờ toàn cầu)

Dấu thời gian thường dùng (khoảng thời gian)

1 phút
60 Giây
1 giờ
3600 Giây
1 ngày
86400 Giây
1 tuần
604800 Giây
1 tháng (theo 30 ngày)
2592000 Giây
1 năm (theo 365 ngày)
31536000 Giây

Vấn đề năm 2038 của dấu thời gian

Vấn đề năm 2038 đề cập đến vấn đề tràn số của kiểu số nguyên có dấu 32 bit khi lưu trữ dấu thời gian Unix (đơn vị là giây, tính từ 00:00:00 UTC ngày 01-01-1970) sau thời điểm 03:14:07 ngày 19-01-2038.

Bởi vì phạm vi của kiểu số nguyên có dấu 32 bit là từ -2,147,483,648 đến 2,147,483,647, và dấu thời gian của 03:14:07 UTC ngày 19-01-2038 là 2,147,483,647, nên sau thời điểm này, kiểu số nguyên có dấu 32 bit sẽ không thể biểu diễn các dấu thời gian tiếp theo.

Nhiều hệ thống hoặc phần mềm cũ sử dụng kiểu time_t 32 bit bị ảnh hưởng bởi vấn đề này. Hệ thống hiện đại thường sử dụng 64 bit (ví dụ như số nguyên 64 bit với đơn vị là mili giây), không có vấn đề này.

Đề nghị sử dụng dấu thời gian 64 bit hoặc sử dụng thư viện thời gian hỗ trợ phạm vi ngày lớn.

Làm cách nào để lấy/chuyển đổi dấu thời gian bằng ngôn ngữ lập trình

JavaScript
Lấy dấu thời gian hiện tại
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
Dấu thời gian → Ngày
new Date(1735689600 * 1000).toISOString();
Ngày → Dấu thời gian
new Date('2025-01-01T00:00:00Z').getTime();
PHP
Lấy dấu thời gian hiện tại
time();                // seconds
intval(microtime(true) * 1000); // milliseconds
Dấu thời gian → Ngày
date('Y-m-d H:i:s', 1735689600);
Ngày → Dấu thời gian
strtotime('2025-01-01 00:00:00');
Python
Lấy dấu thời gian hiện tại
import time

int(time.time())        # seconds
int(time.time() * 1000) # milliseconds
Dấu thời gian → Ngày
import datetime

datetime.datetime.utcfromtimestamp(1735689600).isoformat()
Ngày → Dấu thời gian
import datetime

int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
Go
Lấy dấu thời gian hiện tại
import "time"

time.Now().Unix()      // seconds
time.Now().UnixMilli() // milliseconds
Dấu thời gian → Ngày
import "time"

time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
Ngày → Dấu thời gian
import "time"

ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
Rust
Lấy dấu thời gian hiện tại
use chrono::Utc;

let now = Utc::now();
let sec = now.timestamp();        // seconds i64
let ms  = now.timestamp_millis(); // milliseconds i128
Dấu thời gian → Ngày
use chrono::{DateTime, NaiveDateTime, Utc};

let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
    .unwrap()
    .and_utc();
let iso = dt.to_rfc3339();
Ngày → Dấu thời gian
use chrono::DateTime;

let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
    .unwrap()
    .timestamp();
SQL
Lấy dấu thời gian hiện tại
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;

-- SQLite
SELECT strftime('%s', 'now');
Dấu thời gian → Ngày
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);

-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';

-- SQLite
SELECT datetime(1735689600, 'unixepoch');
Ngày → Dấu thời gian
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;

-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');