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
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.
Đặ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 thường dùng (khoảng thời gian)
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
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
new Date(1735689600 * 1000).toISOString();
new Date('2025-01-01T00:00:00Z').getTime();
time(); // seconds
intval(microtime(true) * 1000); // milliseconds
date('Y-m-d H:i:s', 1735689600);
strtotime('2025-01-01 00:00:00');
import time
int(time.time()) # seconds
int(time.time() * 1000) # milliseconds
import datetime
datetime.datetime.utcfromtimestamp(1735689600).isoformat()
import datetime
int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
import "time"
time.Now().Unix() // seconds
time.Now().UnixMilli() // milliseconds
import "time"
time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
import "time"
ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
use chrono::Utc;
let now = Utc::now();
let sec = now.timestamp(); // seconds i64
let ms = now.timestamp_millis(); // milliseconds i128
use chrono::{DateTime, NaiveDateTime, Utc};
let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
.unwrap()
.and_utc();
let iso = dt.to_rfc3339();
use chrono::DateTime;
let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
.unwrap()
.timestamp();
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;
-- SQLite
SELECT strftime('%s', 'now');
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';
-- SQLite
SELECT datetime(1735689600, 'unixepoch');
-- 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');