做开发、做数据分析,经常遇到时间戳转换的问题。比如数据库里存的是时间戳,但是要看成日期格式;或者日志文件里的时间戳,要转换成可读的时间。以前我总是用在线工具,但是有时候网络不好,或者要批量转换,不太方便。后来找到了几个好用的方法,今天分享给大家。

什么时间戳

时间戳是指从1970年1月1日0时0分0秒(UTC)到现在的秒数,也叫Unix时间戳。比如1714320000这个数字,转换成日期就是2024年4月28日。时间戳在计算机里很常用,因为它是数字,方便存储和计算。

用在线转换工具

最简单的方法是用在线转换工具。比如"Unix时间戳转换"、"时间戳转换器"这些网站,输入时间戳,就能转换成日期时间。也可以反过来,输入日期时间,转换成时间戳。这个方法最简单,适合偶尔使用。

用浏览器控制台

如果你是开发者,可以用浏览器控制台转换时间戳。按F12打开控制台,输入new Date(1714320000 * 1000),就能看到转换后的日期。反过来,输入new Date('2024-04-28').getTime() / 1000,就能得到时间戳。这个方法不用打开网站,很方便。

用Excel

Excel也可以转换时间戳。假设时间戳在A1单元格,输入=(A1/86400)+25569,然后设置单元格格式为日期,就能看到转换后的日期。86400是一天的秒数,25569是Excel的起始日期(1900年1月1日)和Unix时间戳起始日期(1970年1月1日)之间的天数差。

用Python

如果你用Python,可以用datetime模块转换时间戳。import datetime; datetime.datetime.fromtimestamp(1714320000)就能转换成日期。反过来,int(datetime.datetime(2024, 4, 28).timestamp())就能得到时间戳。这个方法适合批量转换。

用JavaScript

JavaScript也可以转换时间戳。new Date(1714320000 * 1000)就能转换成日期。反过来,new Date('2024-04-28').getTime() / 1000就能得到时间戳。注意JavaScript的时间戳是毫秒,所以要乘以或除以1000。

用命令行

Linux和Mac可以用命令行转换时间戳。date -d @1714320000就能看到转换后的日期。反过来,date +%s -d '2024-04-28'就能得到时间戳。Windows的话,可以用PowerShell,[DateTimeOffset]::FromUnixTimeSeconds(1714320000).DateTime就能转换成日期。

用手机APP

手机上也有很多时间戳转换APP,比如"时间戳转换"、"Unix时间戳"等等。这些APP可以快速转换时间戳,还能批量转换。我经常用"时间戳转换",简单好用,免费版就够用了。

注意事项

转换时间戳的时候要注意时区问题。Unix时间戳是UTC时间,转换成北京时间要加8小时。另外,有些系统用的是毫秒时间戳,要注意区分。Excel的日期系统也有1900和1904两种,要注意设置。

批量转换

如果你需要批量转换时间戳,可以用脚本或者Excel。Python和JavaScript都支持批量转换,写个循环就能处理大量数据。Excel的话,把时间戳放在一列,用公式转换,然后下拉填充就行。

希望这些方法能帮你解决时间戳转换的问题。如果你有其他好用的转换方法,也欢迎分享!