Unix时间戳转换工具

轻松实现Unix时间戳与北京时间的双向转换,支持秒级/毫秒级时间戳

时间戳转北京时间

请输入时间戳并点击转换按钮

北京时间转时间戳

请输入北京时间并点击转换按钮

工具说明

使用说明

  • 时间戳转北京时间:输入10位(秒)或13位(毫秒)时间戳,点击转换按钮即可
  • 北京时间转时间戳:输入日期时间(支持格式:YYYY-MM-DD HH:MM:SS,月份/日期/时分秒可补零或不补零),点击转换按钮
  • 转换结果会实时显示在下方结果区域,点击复制按钮可一键复制结果
  • 支持的时间范围:1970-01-01 08:00:00 至 2038-01-19 11:14:07(32位时间戳限制)

工具亮点

  • 支持秒级和毫秒级Unix时间戳自动识别转换
  • 精确转换为北京时间(UTC+8时区)
  • 支持自定义北京时间转换为时间戳(兼容不补零格式,如2025-2-4、2025-02-04)
  • 一键复制转换结果,提升使用效率
  • 提供多编程语言/数据库时间戳操作代码示例
  • 界面简洁,响应式设计,适配手机和电脑

各语言获取/转换Unix时间戳示例

各语言的示例代码(PHP、JavaScript、Python、Java、MySQL)由豆包自动生成,仅供参考,大家使用时请注意核查!切记!!!

PHP
// 获取当前时间戳(秒) $timestamp_s = time(); // 获取当前时间戳(毫秒) $timestamp_ms = round(microtime(true) * 1000); // 时间戳转北京时间 function timestamp_to_beijing($timestamp) { // 处理毫秒级时间戳 if (strlen((string)$timestamp) == 13) { $timestamp = $timestamp / 1000; } // 设置时区为北京 date_default_timezone_set('Asia/Shanghai'); return date('Y-m-d H:i:s', $timestamp); } // 北京时间转时间戳 function beijing_to_timestamp($datetime_str) { date_default_timezone_set('Asia/Shanghai'); return strtotime($datetime_str); }
JavaScript
// 获取当前时间戳(毫秒) const timestampMs = Date.now(); // 获取当前时间戳(秒) const timestampS = Math.floor(Date.now() / 1000); // 时间戳转北京时间 function formatTime(timestamp) { // 处理秒级时间戳 if (timestamp.toString().length === 10) { timestamp = timestamp * 1000; } const date = new Date(timestamp); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; }
Python
import time from datetime import datetime, timezone, timedelta # 获取当前时间戳(秒) timestamp_s = int(time.time()) # 获取当前时间戳(毫秒) timestamp_ms = int(time.time() * 1000) # 时间戳转北京时间 def timestamp_to_beijing(timestamp): # 处理毫秒级时间戳 if len(str(timestamp)) == 13: timestamp = timestamp / 1000 # 转换为北京时间(UTC+8) beijing_tz = timezone(timedelta(hours=8)) beijing_time = datetime.fromtimestamp(timestamp, tz=beijing_tz) return beijing_time.strftime("%Y-%m-%d %H:%M:%S") # 北京时间转时间戳 def beijing_to_timestamp(datetime_str): beijing_tz = timezone(timedelta(hours=8)) dt = datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S").replace(tzinfo=beijing_tz) # 秒级时间戳 return int(dt.timestamp())
Java
import java.time.*; import java.time.format.DateTimeFormatter; public class TimestampUtils { // 获取当前时间戳(毫秒) public static long getCurrentTimestampMs() { return System.currentTimeMillis(); } // 获取当前时间戳(秒) public static long getCurrentTimestampS() { return System.currentTimeMillis() / 1000; } // 时间戳转北京时间 public static String timestampToBeijing(long timestamp) { // 处理秒级时间戳 if (String.valueOf(timestamp).length() == 10) { timestamp = timestamp * 1000; } // 转换为北京时间(UTC+8) ZoneId beijingZone = ZoneId.of("Asia/Shanghai"); LocalDateTime beijingTime = LocalDateTime.ofInstant( Instant.ofEpochMilli(timestamp), beijingZone ); return beijingTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); } // 北京时间转时间戳 public static long beijingToTimestamp(String datetimeStr) { ZoneId beijingZone = ZoneId.of("Asia/Shanghai"); LocalDateTime localDateTime = LocalDateTime.parse( datetimeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") ); ZonedDateTime zonedDateTime = localDateTime.atZone(beijingZone); // 秒级时间戳 return zonedDateTime.toEpochSecond(); } }
MySQL
-- 获取当前时间戳(秒) SELECT UNIX_TIMESTAMP(); -- 获取当前时间戳(毫秒) SELECT UNIX_TIMESTAMP() * 1000; -- 时间戳转北京时间(秒级) SELECT FROM_UNIXTIME(1735689600, '%Y-%m-%d %H:%i:%s') AS beijing_time; -- 北京时间转时间戳 SELECT UNIX_TIMESTAMP('2025-01-01 12:00:00') AS timestamp; -- 注意:MySQL默认使用系统时区,需确保时区设置为UTC+8 SET time_zone = '+8:00';
复制成功!