别把自己搞晕了,正因为 toUTCString 的返回结果里面的 GMT 标识存在,你获取的到的已经是 UTC 时间戳了。  * [在线时间戳转换工具(Unix timestamp) - 在线工具](https://link.segmentfault.com/?enc=WUU1cndc6FngCxBoFMCl7g%3D%3D.Nj%2BnzbaQQtqRpYcWNG0NY65KYLWwchg5H2GbwprghedT2Jh%2BQ%2Fh6RJsaMLrJtByu) 只是你在在打印的时候,默认调取了你当前所在的时区,所以显示成了 +8 的让你感到疑惑。 以你的例子来说,如果你去掉了 `Wed, 24 Jan 2024 06:02:07 GMT` 里面的 GMT ,改为 `Wed, 24 Jan 2024 06:02:07`,你就会发现,他是按照你当前时区格式化获取出来的时间戳了,这才有问题。 时间戳记录了的是从 UTC 0 的 1970年1月1日0时0分0秒 到当前的秒(毫秒),换成国内的时区,就是从 1970年1月1日08时0分0秒 开始的了。 所以你在真实时区 +8 和 +0 上获取的同一时间的时间戳都是一样的。 只是在 +8 时区上,想要处理一个 +0 时区的字符串时,需要注意,因为有可能这个字符串被当成当前时区的处理的。换句话说,你在 +0 时区的 2024/01/01 00:00:00 是等于 +8 时区的 2024/01/01 08:00:00 的。但是你在 +0 时区的 2024/01/01 00:00:00 可不等于 +8 时区的 2024/01/01 00:00:00。