تبدیلکننده تیماستم یونیکس
ابزار تبدیل دوطرفه بین تیماستم یونیکس/لینوکس و تاریخ و زمان، با قابلیت مقایسه بر اساس مناطق زمانی متعدد.
زمان کنونی
تبدیل زمان برچسب به تاریخ
نتیجه تبدیل(خودکار)
تبدیل تاریخ به زمان برچسب
نتیجه تبدیل(خودکار)
تبدیلکننده تاریخ و زمان چند زمان برچسب
تبدیلکننده تاریخ و زمان چند زمان برچسب
تبدیلکننده زمان برچسب چند تاریخ
تبدیلکننده زمان برچسب چند تاریخ
راهنمای استفاده
این ابزار برای انجام سریع تبدیل دوطرفه زمان استاندارد یونیکس (Unix Timestamp) به تاریخ و زمان و بالعکس در شرایط مختلف استفاده میشود. این ابزار از دقت بر حسب ثانیه و میلیثانیه پشتیبانی میکند و شما میتوانید منطقه زمانی مورد نظر خود را برای نمایش مقایسهای انتخاب کنید. این ابزار شامل تبدیلکنندههای تککارت و چندکارت است، آنچه را که وارد میکنید بلافاصله تبدیل میشود و با تغییر منطقه زمانی، نتایج بهصورت خودکار بروزرسانی میشوند. همچنین، محدودههای زمانی اخیر و فاصلههای زمانی معمول در آن تعبیه شدهاند که نیازهای توسعه و调试 و تبدیلهای روزمره را برآورده میکند.
ویژگیهای عملکرد ابزار
- تبدیل بلافاصله با ورود داده، پشتیبانی از تشخیص خودکار زمان استاندارد یونیکس بر حسب ثانیه/مilliثانیه
- پشتیبانی از انتخاب و نمایش منطقه زمانی جهانی: سه نمایش زمان محلی، UTC و منطقه زمانی انتخاب شده
- کارتهای چندین تبدیلکننده برای مقایسه گروهی آسان
- رابط کاربری پاسخگو و سازگار با کیبرد، قابلیت دسترسی خوب
- محدودههای زمانی اخیر و فاصلههای زمانی معمول درونریزی شده، کپی و استفاده سریع
زمان برچسب چیست؟
زمان استاندارد یونیکس (Unix Timestamp) مجموع ثانیهها یا میلیثانیههایی است که از 1970-01-01 00:00:00 UTC (Unix Epoch) تا کنون سپری شدهاند.
زمان استاندارد یونیکس یک عدد است که زمان را نشان میدهد و معمولاً بر حسب ثانیه یا میلیثانیه تعریف میشود.
نقطه شروع زمان استاندارد یونیکس 1 ژانویه 1970، 00:00:00 UTC است که این زمان به عنوان عصر یونیکس شناخته میشود.
زمان استاندارد یونیکس ابتدا در سیستم عامل یونیکس استفاده شد، بنابراین اغلب به آن زمان استاندارد یونیکس میگویند.
زمان استاندارد یونیکس به طور گسترده در برنامهنویسی و ارتباطات شبکه، به ویژه در توسعه وب، استفاده میشود.
دقتهای رایج: ثانیه (مثل 1735689600) و میلیثانیه (مثل 1735689600000). هنگام نمایش تاریخ و زمان مربوط به منطقه زمانی، نیاز به فرمتبندی با توجه به منطقه زمانی است.
زمان برچسبهای معمول (مدت زمان)
مشکل ۲۰۳۸ زمان برچسب
مشکل سال 2038 به مشکل سرریز 32 بیتی صحیح подписدار در ذخیره کردن شمارنده زمان Unix (به ثانیه، از 00:00:00 UTC در 1970-01-01 شروع شده) پس از 03:14:07 در 2038-01-19 اشاره دارد.
چون محدوده 32 بیتی صحیح подписدار از -2,147,483,648 تا 2,147,483,647 است و شمارنده زمان 03:14:07 UTC در 2038-01-19 برابر با 2,147,483,647 است، پس از این نقطه زمانی، 32 بیتی صحیح подписدار قادر به نمایش شمارندههای زمان بعدی نخواهد بود.
اکثر سیستمهای قدیمی یا نرمافزارهایی که از 32 بیتی time_t استفاده میکنند تحت تأثیر این مشکل قرار میگیرند. سیستمهای مدرن معمولاً از 64 بیتی استفاده میکنند (مانند 64 بیتی صحیح به میلیثانیه)، و این مشکل برای آنها وجود ندارد.
توصیه میشود از شمارنده زمان 64 بیتی استفاده کنید یا از کتابخانههای زمانی که محدوده تاریخهای بزرگ را پشتیبانی میکنند استفاده کنید.
چگونه با زبان برنامهنویسی زمان برچسب را دریافت/تبدیل کنیم
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');