เครื่องมือแปลง UNIX Timestamp (ตัวแปลงเวลา UNIX ออนไลน์)

UNIX Timestamp ปัจจุบัน

วินาที
มิลลิวินาที

Timestamp → วันที่และเวลา


วันที่และเวลา → Timestamp

เครื่องมือแปลง UNIX Timestamp (ตัวแปลงเวลา UNIX ออนไลน์)

เครื่องมือแปลง UNIX Timestamp นี้ช่วยให้คุณสามารถแปลง เวลา UNIX (epoch time / POSIX time) เป็น วันที่และเวลา และแปลงกลับได้อย่างรวดเร็ว รองรับ Timestamp ทั้งแบบวินาทีและมิลลิวินาที แสดงผล เวลาท้องถิ่น, UTC และ ISO 8601 และสามารถ คัดลอก ผลลัพธ์ได้ด้วยการคลิกเพียงครั้งเดียว


UNIX Timestamp (epoch time / POSIX time) คืออะไร?

UNIX Timestamp คือตัวเลขที่แสดงเวลาเป็น จำนวนวินาทีที่ผ่านไปนับตั้งแต่วันที่ 1 มกราคม 1970 เวลา 00:00:00 UTC (เรียกว่า UNIX epoch) ในทางปฏิบัติ เป็นหนึ่งในรูปแบบที่ใช้บ่อยที่สุดสำหรับการจัดเก็บและส่งผ่านข้อมูลวันที่และเวลาในระบบ, ฐานข้อมูล, API และการบันทึกข้อมูล

ตัวอย่าง: 1700000000 ตรงกับวันที่ 14 พฤศจิกายน 2023 เวลา 22:13:20 UTC

ทำไมต้องเป็นวันที่ 1 มกราคม 1970?

จุดเริ่มต้นของยุค (1970-01-01) ถูกเลือกเมื่อมีการออกแบบ UNIX เพื่อเป็นจุดอ้างอิงที่ใช้งานได้จริง: ใกล้เคียงกับช่วงเวลาที่ระบบถูกสร้างขึ้น และช่วยให้การคำนวณเวลาง่ายขึ้น


UNIX Timestamp ในหน่วยวินาที vs. มิลลิวินาที

UNIX Timestamp มักจะปรากฏในสองรูปแบบหลัก:

รูปแบบ Timestampตัวอย่างการใช้งานทั่วไป
วินาที (s)1700000000ฐานข้อมูล, แบ็กเอนด์, API, ไฟล์
มิลลิวินาที (ms)1700000000000JavaScript (Date.now()), การวิเคราะห์, บันทึกรายละเอียด

วิธีสังเกตว่าคุณมีรูปแบบใด?

  • วินาที สำหรับข้อมูล “ปัจจุบัน” มักจะมี 10 หลัก
  • มิลลิวินาที มักจะมี 13 หลัก และมีค่าประมาณ 1000 เท่า
  • โดยประมาณ: หากค่า > 10¹² เกือบจะแน่นอนว่าเป็น มิลลิวินาที

วิธีใช้เครื่องมือแปลง UNIX Timestamp

1) Timestamp → วันที่และเวลา

  1. ป้อน UNIX Timestamp ลงในช่อง หรือคลิกที่ ตอนนี้ (เวลา UNIX ปัจจุบัน)
  2. หาก Timestamp อยู่ในหน่วย มิลลิวินาที ให้เปิดใช้งานตัวเลือก มิลลิวินาที
  3. คลิกที่ แปลง (หรือกด Enter)
  4. ผลลัพธ์การแปลงจะแสดงเป็น เวลาท้องถิ่น, UTC และ ISO 8601
  5. คลิกที่ผลลัพธ์เพื่อ คัดลอกไปยังคลิปบอร์ด

2) วันที่และเวลา → Timestamp

  1. เลือก วันที่และเวลา ในแบบฟอร์ม
  2. คลิกที่ แปลง
  3. คุณจะได้รับผลลัพธ์เป็น Timestamp ทั้งในหน่วยวินาทีและมิลลิวินาที

UNIX Timestamp ถูกใช้บ่อยที่สุดที่ไหน?

คุณจะพบเวลา UNIX ได้แทบทุกที่ที่มีการทำงานกับเวลาในด้าน IT:

  • ฐานข้อมูล – การจัดเก็บและเปรียบเทียบเวลาใน MySQL, PostgreSQL, SQLite และอื่นๆ
  • API – REST/GraphQL มักจะคืนค่าเวลาเป็น Timestamp (ง่ายต่อการจัดรูปแบบ)
  • บันทึก (Logs) และการเฝ้าระวัง – การจัดเรียงเหตุการณ์ตามเวลาอย่างแม่นยำ
  • Git – การคอมมิทมีข้อมูลเวลา
  • ระบบไฟล์ – เวลาเช่น mtime/ctime/atime (การแก้ไขล่าสุด เป็นต้น)
  • JWT – claim iat (เวลาที่ออก) และ exp (เวลาหมดอายุ) มักจะอยู่ในรูปแบบ epoch seconds
  • Linux/Unix shelldate +%s คืนค่า Timestamp ปัจจุบัน
  • JavaScriptDate.now() คืนค่าเวลาในหน่วย มิลลิวินาที

ตัวอย่างการแปลงเวลา UNIX ในทางปฏิบัติ

JavaScript (timestamp ↔ วันที่)

// UNIX Timestamp ปัจจุบันในหน่วยวินาที
const tsSeconds = Math.floor(Date.now() / 1000);

// Timestamp ปัจจุบันในหน่วยมิลลิวินาที
const tsMs = Date.now();

// Timestamp (s) -> วันที่
const dateFromSeconds = new Date(1700000000 * 1000);
console.log(dateFromSeconds.toISOString());

// วันที่ -> Timestamp (s)
const ts = Math.floor(new Date("2024-01-01T00:00:00Z").getTime() / 1000);
console.log(ts);

Python (timestamp ↔ datetime)

import time
from datetime import datetime, timezone

# Timestamp ปัจจุบันในหน่วยวินาที
ts = int(time.time())

# Timestamp -> datetime (UTC)
dt_utc = datetime.fromtimestamp(1700000000, tz=timezone.utc);

# วันที่ -> Timestamp
ts2 = int(datetime(2024, 1, 1, tzinfo=timezone.utc).timestamp());

SQL (MySQL)

-- UNIX Timestamp ปัจจุบัน (s)
SELECT UNIX_TIMESTAMP();

-- Timestamp -> วันที่
SELECT FROM_UNIXTIME(1700000000);

-- วันที่ -> Timestamp
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');

เขตเวลา: UTC, เวลาท้องถิ่น และ ISO 8601

UNIX Timestamp อยู่ในรูปแบบ UTC เสมอ – ไม่รวมข้อมูลเขตเวลาหรือเวลาออมแสง การแปลงเป็นเวลาท้องถิ่นขึ้นอยู่กับการตั้งค่าของเบราว์เซอร์, เซิร์ฟเวอร์ หรือไลบรารีที่ใช้

แนวคิดที่คุณควรรู้:

  • UTC – มาตรฐานสากลที่ไม่มีเวลาออมแสง
  • GMT – ในการใช้งานทั่วไป แทบจะเหมือนกับ UTC
  • Offset – ค่าชดเชยจาก UTC (เช่น กรุงเทพฯ UTC+7)

ข้อจำกัดของ UNIX Timestamp และปัญหาปี 2038

ปัญหาปี 2038 (Year 2038 Problem)

ในบาง ระบบ 32 บิต Timestamp จะถูกจัดเก็บเป็น int32 โดยมีค่าสูงสุดที่ 2,147,483,647 ซึ่งตรงกับ วันที่ 19 มกราคม 2038 เวลา 03:14:07 UTC หลังจากการเกินขีดจำกัดนี้ อาจเกิดปัญหา overflow และเวลาที่ไม่ถูกต้องได้ ระบบ 64 บิต ที่ทันสมัยมักจะไม่มีปัญหานี้

ช่วงเวลาของ UNIX Time แบบ 64 บิต

ค่า 64 บิตครอบคลุมช่วงเวลาที่กว้างมาก (ในทางปฏิบัติคือ “ตลอดไป”) ค่าลบหมายถึงวันที่ ก่อนวันที่ 1 มกราคม 1970


คำถามที่พบบ่อย – เกี่ยวกับ UNIX Timestamp

UNIX Timestamp อยู่ในรูปแบบ UTC หรือเวลาท้องถิ่น? UNIX Timestamp อยู่ในรูปแบบ UTC เสมอ เวลาท้องถิ่นจะเกิดขึ้นเมื่อมีการแปลงตามเขตเวลา เครื่องมือแปลงจึงมักจะแสดงทั้งเวลา UTC และเวลาท้องถิ่น
จะรู้ได้อย่างไรว่า Timestamp อยู่ในหน่วยวินาทีหรือมิลลิวินาที? สำหรับช่วงเวลาปัจจุบัน Timestamp ในหน่วย วินาที โดยทั่วไปจะมี 10 หลัก ในขณะที่ มิลลิวินาที มักจะมี 13 หลัก และมีค่ามากกว่าประมาณ 1000 เท่า โดยประมาณ: หากค่า > 10¹² มักจะเป็นมิลลิวินาที
UNIX Timestamp ค่าลบหมายถึงอะไร? Timestamp ค่าลบแสดงถึงวันที่ ก่อนวันที่ 1 มกราคม 1970 ตัวอย่างเช่น -1 ตรงกับ 31 ธันวาคม 1969 เวลา 23:59:59 UTC
จะแปลง UNIX Timestamp ใน SQL ได้อย่างไร? ใน MySQL คุณจะใช้ FROM_UNIXTIME(timestamp) และแปลงกลับด้วย UNIX_TIMESTAMP(date) ใน PostgreSQL มักจะเป็น TO_TIMESTAMP(timestamp) และ EXTRACT(EPOCH FROM date)
ทำไม UNIX epoch ถึงเริ่มต้นที่ 1 มกราคม 1970? นี่เป็นจุดอ้างอิงที่ถูกเลือกทางประวัติศาสตร์ตั้งแต่ยุคแรกของ UNIX: เรียบง่าย ใช้งานได้จริง และใกล้เคียงกับช่วงเวลาที่ระบบถูกพัฒนาขึ้น