如何从时间戳1663099299947转换为日期?求详细解释
时间戳1663099299947转换结果及方法
转换结果
这个13位时间戳是毫秒级时间戳,转换为北京时间(UTC+8)是:2022年9月14日 星期三 08:01:39.947
转换为UTC标准时间是:2022年9月14日 00:01:39.947
详细转换方法
一、先明确时间戳的定义
时间戳是从1970年1月1日 00:00:00 UTC(格林威治标准时间)开始累计的时长:
- 10位数字:秒级时间戳(累计秒数)
- 13位数字:毫秒级时间戳(累计毫秒数,即秒级时间戳×1000)
你的这个是13位,属于毫秒级,第一步需先转成秒级:1663099299947 ÷ 1000 = 1663099299.947(整数部分是秒,小数部分是毫秒)
二、手动计算原理(适合理解底层逻辑)
- 计算总天数:用秒级整数部分除以一天的秒数(86400)
1663099299 ÷ 86400 = 19248.834479...
整数部分19248天,小数部分对应当天的秒数:0.834479×86400≈72099秒 - 推算日期:从1970年1月1日开始累加19248天,最终得到2022年9月14日(手动计算需考虑平闰年,容易出错,更推荐工具)
- 转换时分秒:将剩余的72099秒拆分,
72099 = 20×3600 + 1×60 + 39,即UTC时间的20小时01分39秒;北京时间需加8小时,得到08:01:39
三、工具/代码快速转换(日常实用)
1. Python代码实现
import datetime timestamp = 1663099299947 # 转换为UTC时间 utc_time = datetime.datetime.utcfromtimestamp(timestamp / 1000) # 转换为北京时间(UTC+8) beijing_time = utc_time + datetime.timedelta(hours=8) print("UTC时间:", utc_time.strftime("%Y-%m-%d %H:%M:%S.%f")) print("北京时间:", beijing_time.strftime("%Y-%m-%d %H:%M:%S.%f"))
运行输出:
UTC时间: 2022-09-14 00:01:39.947000 北京时间: 2022-09-14 08:01:39.947000
2. JavaScript代码实现
const timestamp = 1663099299947; const date = new Date(timestamp); // 输出北京时间(本地时区为UTC+8时) console.log(date.toLocaleString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit', fractionalSecondDigits: 3 })); // 输出UTC时间 console.log(date.toUTCString());
运行输出:
2022年9月14日 08:01:39.947 Wed, 14 Sep 2022 00:01:39 GMT
3. 在线工具
直接搜索“时间戳转换”,输入1663099299947并选择毫秒级,即可快速得到对应日期(国内工具默认时区为北京时间)
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

