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版权协议,转载请附上原文出处链接和本声明。