成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聽干貨君聊項目多時區處理

開發 前端
很多時候在項目的開發中或許沒有接觸過多時區,項目大多是部署國內,同時僅僅為國內用戶提供服務,一旦當用戶到國外后,項目中的很多時間都變得與當地時間不一樣,對用戶非常不友好。例如近幾年非常火的線上教育,像一些外籍老師,教小朋友學英文,如何保證雙方在特定的時間都進入教室,變得非常常見。

 為什么要講一下這個問題呢?

很多時候在項目的開發中或許沒有接觸過多時區,項目大多是部署國內,同時僅僅為國內用戶提供服務,一旦當用戶到國外后,項目中的很多時間都變得與當地時間不一樣,對用戶非常不友好。例如近幾年非常火的線上教育,像一些外籍老師,教小朋友學英文,如何保證雙方在特定的時間都進入教室,變得非常常見。


對于多時區用戶提供服務,業界如何處理時間呢?

在講述業界的處理之前,我們先來了解幾個概念。

時間戳,是指格林尼治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數,用有符號32位整數表示。

GMT:Greenwich Mean Time 格林尼治標準時間。這是以英國格林尼治天文臺觀測結果得出的時間,這是英國格林尼治當地時間,這個地方的當地時間過去被當成世界標準的時間。

UT:Universal Time 世界時。根據原子鐘計算出來的時間。

UTC:Coordinated Universal Time 協調世界時。因為地球自轉越來越慢,每年都會比前一年多出零點幾秒,每隔幾年協調世界時組織都會給世界時+1秒(會出現閏秒即61s,一般不處理),讓基于原子鐘的世界時和基于天文學(人類感知)的格林尼治標準時間相差不至于太大。并將得到的時間稱為UTC,這是現在使用的世界標準時間。

GMT和UTC維度不一樣,但值是一樣的,UTC = GTM+0(時區)

我們都知道時間都可以用GMT或者UTC來表示,而時間戳由于是基于格林尼治的特定時間,在地球上過1秒,在全球任何一個地方都是1秒,因此同一時刻,全球的值是一樣的。

可以看看java示例,發現不同時區時間戳確實是相等的

  1. // 獲得不同時區的時間,來計算時間戳 
  2. LocalDateTime localDateTime = LocalDateTime.now(); 
  3. OffsetDateTime offsetDateTime7 = OffsetDateTime.of(localDateTime.minusHours(1), ZoneOffset.ofHours(7)); 
  4. OffsetDateTime offsetDateTime8 = OffsetDateTime.of(localDateTime, ZoneOffset.ofHours(8)); 
  5. System.out.println(offsetDateTime7.toEpochSecond() == offsetDateTime8.toEpochSecond()); // true 

 因此,業界對于時區的處理基本都是基于時間戳。

[[358244]]

前后端配合以保證用戶看到的都是本地時間

針對此類問題,對于后端需要注意的是服務器是否會部署到不同時區,建議獲取系統時間的操作,改成獲取統一一個時區的時間,再將其轉成時間戳進行存儲;而前端最主要的則是在請求中傳入時區到后端,一般可以在請求頭中添加獲取到的系統的時區,將時區傳入到后端。后端根據時區,如+8,則將數據庫中的時間戳,轉成對應時區的時間。如下圖


最后,推薦使用java8時間類去處理,java8中核心的類就幾種:

ZoneId、ZoneOffset主要表示時區和偏移

Instant 表示時間戳,Duration、Period 表示時間差,前者表示時間差,后者表示日期差

LocalDate、LocalTime、LocalDateTime表示日期、時間、日期+時間

ZonedDateTime、OffsetDateTime含時區信息的時間

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2019-05-28 07:23:03

2016-12-06 17:14:57

Windows 10時區時鐘

2022-05-12 23:19:15

Redis內存碎片處理

2021-07-08 11:22:55

Java異常處理

2021-02-20 06:15:00

項目SpringBoot熱部署

2023-07-25 15:06:39

2016-05-11 13:47:47

阿里巴巴YunOS

2019-09-20 08:47:57

DockerLinux軟件

2017-03-15 19:24:29

Windows 10Windows時鐘

2013-04-27 10:32:51

大數據全球技術峰會大數據流計算

2024-02-06 08:58:23

開源項目my-tv

2018-06-07 13:17:12

契約測試單元測試API測試

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2022-03-08 16:10:38

Redis事務機制

2020-08-12 08:34:16

開發安全We

2021-01-01 09:01:05

前端組件化設計

2022-11-26 00:00:06

裝飾者模式Component

2020-06-28 09:30:37

Linux內存操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91色视频在线观看 | 亚洲高清在线观看 | 99久久夜色精品国产亚洲96 | 黑人巨大精品欧美一区二区免费 | 午夜影院在线观看视频 | 欧美日日| 99热在这里只有精品 | 欧美精品一区二区三区在线播放 | 国产精品久久久久久久久久久免费看 | 欧美一级久久 | 久久91av| 亚洲一区二区三区在线 | 精品国产乱码久久久久久蜜臀 | 亚洲一级毛片 | 亚洲成av人片在线观看 | 97成人免费| 午夜免费观看体验区 | 成人免费一区二区三区视频网站 | 国产免费观看一级国产 | 精品一区二区三 | 欧美一级久久 | 成人免费毛片片v | 亚洲第一免费播放区 | 鲁一鲁资源影视 | 黑人巨大精品欧美一区二区免费 | 午夜视频一区 | 午夜男人的天堂 | 一级毛片视频在线 | 99在线精品视频 | 婷婷激情综合 | 国产一区二区在线视频 | 国产精品美女久久久久aⅴ国产馆 | 亚洲二区在线观看 | 久夜精品 | 欧美三级成人理伦 | 91aiai| 日韩一区二区三区av | 日韩欧美网 | 91久久北条麻妃一区二区三区 | 欧美综合一区二区三区 | 欧美一级网站 |