Ainexis Tools

你的在线工具箱

艾尼克斯学习工具
Ainexis.cn

当前时间

时间戳(秒)

--

时间戳(毫秒)

--

本地时间

加载中...

时间戳 → 日期时间

日期时间 → 时间戳

支持格式:YYYY-MM-DD HH:MM:SS

关于 Unix 时间戳

什么是 Unix 时间戳?

Unix 时间戳(Unix Timestamp)起源于 Unix 操作系统,1969 年 Unix 系统设计者因开发需要, 选定 1970 年 1 月 1 日 00:00:00 UTC(协调世界时,该时间点被称为"Unix 纪元"或"Unix Epoch")作为起始时间点, 它表示自此开始所经过的秒数,是一种简洁的时间表示方式,广泛用于计算机系统中。

时间戳格式

  • 秒级时间戳:10 位数字,例如 1234567890
  • 毫秒级时间戳:13 位数字,例如 1234567890123

时间戳的优势

  • 简洁高效:用一个整数即可表示时间,节省存储空间
  • 易于计算:可以直接进行加减运算来计算时间差
  • 跨平台:不同系统和编程语言都能理解
  • 无歧义:不受时区和地区设置影响
  • 国际化:全球统一标准,便于跨国业务

时区说明

Unix 时间戳本身不包含时区信息,它始终表示 UTC 时间。在转换为本地时间时,需要根据用户所在的时区进行调整。 例如:时间戳 0 表示 1970-01-01 00:00:00 UTC,在中国时区(UTC+8)则为 1970-01-01 08:00:00。

时间戳范围

  • 32 位系统:最大可表示到 2038 年 1 月 19 日(Y2038 问题)
  • 64 位系统:可表示到公元 292,277,026,596 年
  • 负数时间戳:表示 1970 年之前的时间

使用场景

  • 数据库时间字段存储
  • API 接口时间参数传递
  • 日志记录时间标记
  • 缓存过期时间设置
  • 分布式系统时间同步

常见时间戳示例

描述时间戳(秒)UTC 时间
Unix 纪元01970-01-01 00:00:00
千年虫9466848002000-01-01 00:00:00
Y2K38 问题21474836472038-01-19 03:14:07

编程语言示例

获取当前时间戳

JavaScript
// 获取秒级时间戳
Math.floor(Date.now() / 1000);

// 获取毫秒级时间戳
Date.now();

// 时间戳转日期
new Date(timestamp).toLocaleString('zh-CN');

// 日期转时间戳
new Date().getTime();
Python
import time

# 获取秒级时间戳
int(time.time())

# 获取毫秒级时间戳
int(time.time() * 1000)

# 时间戳转日期
import datetime
datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')

# 日期转时间戳
int(datetime.datetime.now().timestamp())
Java
// 获取秒级时间戳
System.currentTimeMillis() / 1000;

// 获取毫秒级时间戳
System.currentTimeMillis();

// 时间戳转日期
import java.text.SimpleDateFormat;
import java.util.Date;
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp * 1000));

// 日期转时间戳
new Date().getTime();
PHP
// 获取秒级时间戳
time();

// 获取毫秒级时间戳
microtime(true) * 1000;

// 时间戳转日期
date('Y-m-d H:i:s', $timestamp);

// 日期转时间戳
strtotime('now');
Go
package main
import (
    "time"
)

// 获取秒级时间戳
time.Now().Unix()

// 获取毫秒级时间戳
time.Now().UnixMilli()

// 时间戳转日期
time.Unix(timestamp, 0).Format("2006-01-02 15:04:05")

// 日期转时间戳
time.Now().Unix()
C#
using System;

// 获取秒级时间戳
DateTimeOffset.UtcNow.ToUnixTimeSeconds();

// 获取毫秒级时间戳
DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

// 时间戳转日期
DateTimeOffset.FromUnixTimeSeconds(timestamp).LocalDateTime.ToString("yyyy-MM-dd HH:mm:ss");

// 日期转时间戳
DateTimeOffset.UtcNow.ToUnixTimeSeconds();
Ruby
# 获取秒级时间戳
Time.now.to_i

# 获取毫秒级时间戳
(Time.now.to_f * 1000).to_i

# 时间戳转日期
Time.at(timestamp).strftime("%Y-%m-%d %H:%M:%S")

# 日期转时间戳
Time.now.to_i
Shell
# 获取秒级时间戳
date +%s

# 获取毫秒级时间戳
date +%s%3N

# 时间戳转日期
date -d @timestamp '+%Y-%m-%d %H:%M:%S'
SQL
-- MySQL
-- 获取当前时间戳
SELECT UNIX_TIMESTAMP();
-- 时间戳转日期
SELECT FROM_UNIXTIME(timestamp);
-- 日期转时间戳
SELECT UNIX_TIMESTAMP('2024-01-01 00:00:00');

-- PostgreSQL
-- 获取当前时间戳
SELECT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP);
-- 时间戳转日期
SELECT to_timestamp(timestamp);

© 2020-2026 Ainexis.cn. All Rights Reserved.

隐私政策•服务条款•关于我们•问题反馈
ICP备案号沪ICP备11008058号-6
公安备案沪公网安备31011202022208号