timezone 的作用

timezone 的作用

场景

  • A 和 B 是好朋友
  • A 在 上海
  • B 在 伦敦

A 在上海时间 2021年8月5日 上午10点53分10秒 发布了一篇博客,B 在伦敦看到这篇博客 时间应该怎么显示呢 ?

应该是伦敦当时的时间,还是上海的时间?

如果不使用 timezone 那么 B 就会认为 A 在伦敦 2021年8月5日上午10点53分10秒 发布这篇文章。

但上海和伦敦地理位置上距离非常远,存在时间差异,即时区问题。

这个问题怎么解决呢?

其实很简单 A 的博客只需要带上发布地点就好了,也就是说 B 会看到类似

时间:2021年年8月5日 上午10点53分10秒
发布于:中国上海

也就准确的表达了,上海的2021年年8月5日 上午10点53分10秒 A 发布了这篇文章, 而不是伦敦的"2021年年8月5日 上午10点53分10秒 A 发布了这篇文章"。

按照常规思想,在某个地方,肯定默认就是某个地方的时间,让人来推算时间有点过于原始。

我们可以用另外一种解决方式,timezone,时间可以带一个时区标识,类似datetime.datetime(2021, 8, 5, 9, 19, 37, 92612, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>) 其中 tzinfo 就是 timezone,表示上海时间 2021年 8月5日 9时 19分 37秒。

这样一来,如果一个在伦敦的人 B 看到这篇文章的时候,tzinfo 就是 “伦敦”。通过时间计算规则(上海和伦敦的时区差别),在伦敦的人看到这篇文章显示的就是准确的且友好的伦敦时间。


版权声明:本文为sha_ka原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。