賬號為華為云開發(fā)者社區(qū)官方運營賬號,提供全面深入的云計算前景分析、豐富的技術(shù)干貨、程序樣例,分享華為云前沿資訊動態(tài)
本文分享自華為云社區(qū)《人人都知道的時區(qū),背后竟然有這么多奧秘》,原文作者:leapdb 。
時區(qū)同其它工業(yè)標(biāo)準(zhǔn)一樣,標(biāo)準(zhǔn)化過程也是一個復(fù)雜而漫長的過程。GaussDB(DWS)作為一款面向全球用戶的高性能分析型數(shù)據(jù)庫產(chǎn)品,對時區(qū)的支持也是符合工業(yè)界標(biāo)準(zhǔn)規(guī)范的。下面從時區(qū)概念,GaussDB(DWS)時區(qū)使用及原理,以及一些常見問題等方面介紹一下GaussDB(DWS)。
希望對大家了解GaussDB(DWS)和時區(qū)概念有所幫助。
在以前全球國家都處于農(nóng)業(yè)社會的時候,人們通過每天觀察太陽的位置來決定時間,這就使得不同經(jīng)度的地方有不同的時間。當(dāng)時人們旅行主要靠走和馬匹,不同地方時間不一致的問題沒有那么突出。但是到了十九世紀(jì)隨著火車的發(fā)明,人們一天旅行的距離一下子延長了很多,到不同的地方因此迫切需要一個通用的方法把各個地方的時間統(tǒng)一起來。1853年8月12日,美國東部羅德島州,兩輛火車迎頭相撞,14人因此死亡。事故的原因在今天看來難以置信——兩車工程師的手表差了2分鐘。
時區(qū) 時區(qū)是地球上的區(qū)域使用同一個時間定義。以前,人們通過觀察太陽的位置(時角)決定時間,這就使得不同經(jīng)度的地方的時間有所不同(地方時)。1863年,首次使用時區(qū)的概念。時區(qū)通過設(shè)立一個區(qū)域的標(biāo)準(zhǔn)時間部分地解決了這個問題。世界各個國家位于地球不同位置上,因此不同國家,特別是東西跨度大的國家日出、日落時間必定有所偏差。這些偏差就是所謂的時差。
格林尼治標(biāo)準(zhǔn)時間 GMT(Greenwich Mean Time)是指位于英國倫敦郊區(qū)的皇家格林尼治天文臺的標(biāo)準(zhǔn)時間,因為本初子午線被定義為在那里通過的經(jīng)線。由于地球在它的橢圓軌道里的運動速度不均勻,地球每天的自轉(zhuǎn)是有些不規(guī)則的,而且正在緩慢減速。所以,格林尼治時間已經(jīng)不再被作為標(biāo)準(zhǔn)時間使用。
世界協(xié)調(diào)時間 UTC(Coordinated Universal Time)是經(jīng)過平均太陽時(以格林威治時間GMT為準(zhǔn))、地軸運動修正后的新時標(biāo)以及以「秒」為單位的國際原子時所綜合精算而成的時間。UTC比GMT來得更加精準(zhǔn)。對于現(xiàn)行表款來說,GMT與UTC的功能與精確度是沒有差別的。
夏日節(jié)約時間 DST(Daylight Saving Time)又稱日光節(jié)約時制,在英國稱為夏令時間(Summer Time)。是一種為節(jié)約能源而人為規(guī)定地方時間的制度,在這一制度實行期間所采用的統(tǒng)一時間稱為“夏令時間”。一般在天亮較早的夏季人為將時間調(diào)快一小時,可以使人早起早睡,減少照明量,以充分利用光照資源,從而節(jié)約照明用電。各個采納夏時制的國家規(guī)定不同。
時區(qū)表示法 如果時間是以協(xié)調(diào)世界時(UTC)表示,則在時間后面直接加上一個“Z”(不加空格)。“Z”是協(xié)調(diào)世界時中0時區(qū)的標(biāo)志。因此,“09:30 UTC”就寫作“09:30Z”或是“0930Z”。“14:45:15 UTC”則為“14:45:15Z”或“144515Z”。UTC時間也被叫做祖魯時間,因為在北約音標(biāo)字母中用“Zulu”表示“Z”。
UTC偏移量 UTC偏移量是協(xié)調(diào)世界時(UTC)和特定地點的日期與時間差異,其單位為小時和分鐘。它通常以 ±[hh]:[mm]、±[hh][mm]、或 ±[hh]的格式顯示。所以,如果被描述的時間比UTC早一小時(例如柏林的冬季時間),UTC的偏移量將是”+01:00”、”+0100”、或簡單顯示為”+01”。
1. 摩洛哥在2010年開始將夏令時開始時間從6月1日調(diào)整為5月2日,結(jié)束時間從8月21日調(diào)整為8月8日
2. Tunisia從2010年開始廢棄夏令時
3. 麥夸里島位于澳洲與南極洲之間決定從2010年4月4日開始不在跟隨澳洲其它地區(qū)一起采用夏令時,由此產(chǎn)生新的時區(qū)Antarctica/Macquarie,簡稱MIST
4. 朝鮮 - 2018年5月5日起調(diào)整時區(qū),時區(qū)由 GMT+8:30 改為 GMT+9:00,因此平壤的標(biāo)準(zhǔn)時間于 2018年5月5日星期六 00:00:00 時間改為 00:30:00 撥快 30 分鐘。當(dāng)格林威治 GMT 標(biāo)準(zhǔn)時間是凌晨 0:00,平壤時間就是上午 9:00,與韓國和日本同一時區(qū)。
5. 朝鮮 - 2015年8月15日起,棄用 GMT+9,“恢復(fù)”大韓帝國時代的 GMT+8:30 標(biāo)準(zhǔn)時間,新啟用的時間比原來的時間慢30分鐘,是世界上唯一正在使用這個時區(qū)的國家。當(dāng)格林威治 GMT 是凌晨 0:00,平壤時間就是上午 8:30。
6. 智利 - 2015年1月28日,智利採用了新的官方標(biāo)準(zhǔn)時間,他們把原來的標(biāo)準(zhǔn)時間和夏令時間合併成一個,永久採用夏令時制。新的官方時間在智利大陸改為 GMT-3,復(fù)活節(jié)島則為 GMT-5。
7. 俄羅斯 - 2014年10月最后一個星期日 (2014年10月26日) 凌晨開始,永久採用冬令時制,全國會撥慢一小時。因此莫斯科時間將由 GMT+4改為 GMT+3。
可見,不管是時區(qū)還是夏令時都會經(jīng)常改變。
主要參考Posix 1003.1 Section 8.3。操作系統(tǒng)中TZ環(huán)境變量代表時區(qū)信息,主要用于ctime、localtime、mktime等等。TZ時區(qū)名字有兩種形式:時區(qū)名格式和POSIX時區(qū)格式。
:characters 該種形式以冒號開始,后面的字符處理與實現(xiàn)相關(guān)。linux上表示從某個文件讀時區(qū)信息,例如TZ=":Pacific/Auckland"。
不以冒號開始的格式都算此種格式,擴展開來如下,[]里的字段代表是可選的:std offset[dst[offset][,startdate[/time], enddate[/time]]]
格式:`std offset[dst[offset][,startdate[/time], enddate[/time]]]`
各字段含義如下:
1. std && dst 代表標(biāo)準(zhǔn)時區(qū)和日光節(jié)約制時區(qū),std是必須的,dst是可選的(有dst字段則代表支持夏令時)。這兩個字段有兩種格式:
字段長度大于等于3,小于等于TZNAME_MAX(linux是6),如果字符串長度不符合規(guī)定,解析規(guī)則未定義(linux不識別)。
2. offset 代表本地時間加上多少能得到UTC時間。
格式為hh[:mm[:ss]],0<=hh<=24,0<=mm&&ss<=59。hh是必須的,并且可以是1位,mm和ss是可選的。
std后面的offset是必須的,dst后面的offset是可選的,如果沒有,則默認(rèn)比標(biāo)準(zhǔn)時間提前一小時。
3. rule 表示什么時候開始夏令時,什么時候結(jié)束夏令時,協(xié)議沒有提到怎么處理沒有rule的情況,從linux系統(tǒng)來看,沒有rule默認(rèn)按M3.2.0/02:00:00,M11.1.0/02:00:00處理。
格式為date[/time],date[/time]。date有三種形式:
a. Jn,1 <= n <= 365,不包括閏年的2月29日;
b. n,0 <= n <= 365,包括閏年的2月29日;
c. Mm.n.d,m表示哪個月份(1 <= m <= 12),n表示一個月的第幾周(1 <= n <= 5),5代表最后一個,d表示一周的第幾天(0 <= d <= 6,從周日開始)。
4. time 格式與offset相同,除了沒有+和-,如果沒帶time字段,則默認(rèn)為02:00:00。
舉例:"UTC-8:00:00DST-09:00:00,M3.2.0/02:00:00,M11.1.0/02:00:00"
表示本地時間為UTC以東減8小時,支持夏令時且夏令時為UTC減9小時(及提前一小時),夏令時從3月第2周第0天凌晨2點開始,到11月第1周第0天凌晨2點結(jié)束。
CST6CDT,M3.2.0/2:00:00,M11.1.0/2:00:00
POSIX時區(qū)格式由于無法表示不使用公歷的時間(比如希臘),因此并未被廣泛采用。
各地的時區(qū)和夏令時規(guī)則由各自的政府獨立管理,他們經(jīng)常在有限的通知下進行變更。而且他們歷史數(shù)據(jù)和未來計劃也只是斷斷續(xù)續(xù)的記錄下來。通用時區(qū)數(shù)據(jù)庫試圖組織和整理這一領(lǐng)域相關(guān)的數(shù)據(jù)。
時區(qū)數(shù)據(jù)庫,通常稱為 tz, tzdata 或 zoneinfo,是一組包含大量代碼和數(shù)據(jù)用來表示全球許多有代表性的地點的本地時間的歷史信息,他會根據(jù)各個政體對時區(qū)邊界和夏令時規(guī)則的改變而不定期的更新。數(shù)據(jù)庫中每一個條目都代表這自1970年以來被廣泛認(rèn)可的民用時鐘的時區(qū)信息。該數(shù)據(jù)庫被很多項目引用,比如:the GNU C Library (used in GNU/Linux), Android, FreeBSD, NetBSD, OpenBSD, Chromium OS, Cygwin, MariaDB, MINIX, MySQL, webOS, AIX, BlackBerry 10, iOS, macOS, Microsoft Windows, OpenVMS, Oracle Database, 和 Oracle Solaris。GaussDB同其它廣泛使用的軟件產(chǎn)品一樣,也是采用了IANA維護的通用時區(qū)數(shù)據(jù)。
該數(shù)據(jù)庫由David Olson創(chuàng)立,由Paul Eggert進行編輯和維護。因而有些地方也將其稱作Olson數(shù)據(jù)庫。它的顯著特色是由Paul Eggert設(shè)計的一套通用時區(qū)命名規(guī)則,每個時區(qū)按照“區(qū)域/位置”格式,得到一個獨有的名稱,例如“America/New_York”。英文地名中的空格用下劃線“_”代替,連詞符“-”只在英文地名本身包含時使用。時區(qū)數(shù)據(jù)庫目前普遍有兩個叫法 Olson時區(qū)數(shù)據(jù)庫或IANA時區(qū)數(shù)據(jù)庫。
奧爾森(Olson)的數(shù)據(jù)有所變化,部分原因是奧爾森(AD Olson)即將退休,部分原因是針對維護者的版權(quán)侵權(quán)提起了訴訟(現(xiàn)已撤銷)。2011年10月14日,國際互聯(lián)網(wǎng)名稱與名稱分配機構(gòu)(IANA)接管了時區(qū)數(shù)據(jù)庫的維護工作。它會定期進行更新以反映各政治實體對時區(qū)邊界、UTC 差值和夏令時規(guī)則的更改。對tz的更新遵循BCP 175流程進行管理。經(jīng)常有一些國家變更時區(qū)規(guī)則,IANA每年都會發(fā)布最新的時區(qū)數(shù)據(jù)和解析源碼庫。
實際上時區(qū)如何定義如何管理是頗具爭議的事情,并不存在絕對權(quán)威的時區(qū)數(shù)據(jù)庫。IANA維護的通用時區(qū)數(shù)據(jù)庫由于每條記錄都標(biāo)識了明確的信息來源,有歷史信息也能推測未來時間,被GNU C Library,BSD的采用而變的廣泛使用。其實還存在其它的時區(qū)數(shù)據(jù)庫,例如:微軟時區(qū)數(shù)據(jù)庫,HP-UX時區(qū)數(shù)據(jù)庫,世界時間服務(wù)器(https://www.worldtimeserver.com/)和國際航空運輸協(xié)會的《標(biāo)準(zhǔn)時間表信息手冊》等。
系統(tǒng)表 pg_timezone_names 記錄時區(qū)名稱。
testdb=# select * from pg_timezone_names where utc_offset='08:00:00';
name | abbrev | utc_offset | is_dst
--------------------+--------+------------+--------
Asia/Kuala_Lumpur | +08 | 08:00:00 | f
Asia/Brunei | +08 | 08:00:00 | f
Asia/Makassar | WITA | 08:00:00 | f
Asia/Harbin | CST | 08:00:00 | f
Asia/Ujung_Pandang | WITA | 08:00:00 | f
Asia/Chungking | CST | 08:00:00 | f
Asia/Kuching | +08 | 08:00:00 | f
Asia/Taipei | CST | 08:00:00 | f
Asia/Macau | CST | 08:00:00 | f
Asia/Macao | CST | 08:00:00 | f
Asia/Manila | PST | 08:00:00 | f
Asia/Chongqing | CST | 08:00:00 | f
Asia/Shanghai | CST | 08:00:00 | f
Asia/Choibalsan | +08 | 08:00:00 | f
Asia/Ulaanbaatar | +08 | 08:00:00 | f
Asia/Irkutsk | +08 | 08:00:00 | f
Asia/Ulan_Bator | +08 | 08:00:00 | f
Asia/Hong_Kong | HKT | 08:00:00 | f
Asia/Singapore | +08 | 08:00:00 | f
Australia/West | AWST | 08:00:00 | f
Australia/Perth | AWST | 08:00:00 | f
ROC | CST | 08:00:00 | f
Etc/GMT-8 | +08 | 08:00:00 | f
PRC | CST | 08:00:00 | f
Singapore | +08 | 08:00:00 | f
Antarctica/Casey | +08 | 08:00:00 | f
Hongkong | HKT | 08:00:00 | f
(27 rows)
系統(tǒng)表 pg_timezone_abbrevs 記錄了時區(qū)簡稱
testdb=# select * from pg_timezone_abbrevs where utc_offset='08:00:00';
abbrev | utc_offset | is_dst
--------+------------+--------
AWST | 08:00:00 | f
BNT | 08:00:00 | f
BORT | 08:00:00 | f
CCT | 08:00:00 | f
HKT | 08:00:00 | f
IRKST | 08:00:00 | f
IRKT | 08:00:00 | f
MYT | 08:00:00 | f
PHT | 08:00:00 | f
SGT | 08:00:00 | f
ULAT | 08:00:00 | f
WADT | 08:00:00 | t
(12 rows)
通過設(shè)置session的環(huán)境變量 timezone 可以設(shè)置數(shù)據(jù)庫數(shù)據(jù)入庫和查詢時的時區(qū)。為什么是session級?不用用戶設(shè)置不同的時區(qū),或者用戶忘記之前設(shè)置的時區(qū)怎么辦?
答:時間數(shù)據(jù)入庫后數(shù)據(jù)庫管理軟件后臺都會將時間轉(zhuǎn)換為UTC的0時區(qū)時間,用戶查詢時根據(jù)用戶設(shè)置的時區(qū),再轉(zhuǎn)換為相應(yīng)時間給用戶。因此用戶設(shè)置的時區(qū)不影響數(shù)據(jù)存儲,數(shù)據(jù)遷移時也不需要關(guān)心時區(qū)。
如果配置文件中未指定時區(qū),則從操作系統(tǒng)當(dāng)前環(huán)境變量 TZ 獲取當(dāng)前操作系統(tǒng)時區(qū),且該時區(qū)是數(shù)據(jù)庫內(nèi)支持的時區(qū),則直接使用操作系統(tǒng)時區(qū)。否則,根據(jù)操作系統(tǒng)當(dāng)前時間構(gòu)造一些日期來評判哪個時區(qū)更和操作系統(tǒng)匹配。
評判方法:
1)從今向后100年內(nèi)采集一些時間戳
首先,探測當(dāng)前年的一月和七月,這可以快速排除掉大量的不符合時區(qū)。
其次,探測當(dāng)前年七月向后100年間的每周,可以有效排除掉夏令時不符合的時區(qū)。
tnow = time(NULL); //獲取1970-01-01 00:00:00 UTC至今所經(jīng)歷過的秒數(shù)
tm_val = localtime(&tnow); //將從time()獲取的時間戳,轉(zhuǎn)為本地時間的tm結(jié)構(gòu)格式
thisyear = tm_val->tm_year + 1900; //tm_year是自1900年起的年數(shù),所以要加1900
time_needto_test = 0;
//先構(gòu)造一個當(dāng)年的1月15日,再調(diào)整到當(dāng)前周的第一天 00:00:00
t = MakeTime(thisyear, 1, 15);
t -= (t % T_WEEK);
test_times[time_needto_test++] = t;
//構(gòu)造一個當(dāng)年的7月15日,再調(diào)整到當(dāng)前周的第一天 00:00:00
t = MakeTime(thisyear, 7, 15);
t -= (t % T_WEEK);
test_times[time_needto_test++] = t;
//構(gòu)造向后100年內(nèi)每周的時間
while (tt.n_test_times < 52 * 100) {
t -= T_WEEK;
test_times[time_needto_test++] = t;
}
//總共構(gòu)造了5202個探測時間
2)判斷每個數(shù)據(jù)庫內(nèi)部時區(qū)與操作系統(tǒng)時區(qū)的匹配度
如果一個時間戳轉(zhuǎn)為操作系統(tǒng)時區(qū)與轉(zhuǎn)為待測試的數(shù)據(jù)庫內(nèi)部時區(qū)后的時間一致,則加一分。遇到一個不匹配則結(jié)束當(dāng)前時區(qū)匹配。
首先,判斷 "/etc/localtime" 中時區(qū)與前面測試時間的匹配度,如完全匹配則返回成功。
否則,判斷數(shù)據(jù)庫安裝目錄timezone下的每個時區(qū)文件與前面測試時間的匹配度,獲取匹配度最高的時區(qū)。
bestscore = 0;
for (獲取每一個時區(qū)文件) {
判斷當(dāng)前時區(qū)文件與探測時間的匹配度
score = score_timezone(tzdirsub, tt);
if (score > bestscore) { //當(dāng)前時區(qū)文件匹配度 > 目前最大匹配度
bestscore = score;
bestzonename = tzdirsub;
} else if (score == bestscore) { //如果當(dāng)前時區(qū)文件匹配度與目前最大匹配度相等,則選擇長度更短,字母排序更靠前的時區(qū)
if ((strlen(tzdirsub) < strlen(bestzonename) ||
(strlen(tzdirsub) == strlen(bestzonename) && strcmp(tzdirsub, bestzonename) < 0))
strlcpy(bestzonename, tzdirsub, TZ_STRLEN_MAX + 1);
}
}
3)如果所有數(shù)據(jù)庫內(nèi)部時區(qū)匹配完,最佳得分仍為0,則需要構(gòu)造一個與操作系統(tǒng)時區(qū)一致的POSIX風(fēng)格的時區(qū),例如:“PSD8PDT”
公元1912年之前,中國各地并沒有統(tǒng)一的標(biāo)準(zhǔn)時間。在封建時代,國家的標(biāo)準(zhǔn)歷法由皇庭頒布,而中國傳統(tǒng)歷法同時依賴于日月兩個天體的運動,并以實際天文觀測為準(zhǔn),因此歷時標(biāo)準(zhǔn)都以朝廷所在地(準(zhǔn)確說,是欽天監(jiān)的觀測點)的經(jīng)緯為準(zhǔn)。
公元1912年,中華民國建立,首次設(shè)立并正式頒布時區(qū)劃分將中國分為五個時區(qū),并在1939年正式頒布。
1:昆侖時區(qū)(GMT+5:30)
2:新藏時區(qū)(GMT+6)
3:隴蜀時區(qū)(GMT+7)
4:中原標(biāo)準(zhǔn)時區(qū)(GMT+8)
5:長白時區(qū)(GMT+8:30)
詳細(xì)介紹如下:
Asia/Harbin 也叫長白時區(qū),主要代表黑龍江(不包括漠河),吉林地區(qū)的時間
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
# Changbai Time ("Long-white Time", Long-white = Heilongjiang area)
# Heilongjiang (except Mohe county), Jilin
Zone Asia/Harbin 8:26:44 - LMT 1928 # or Haerbin
8:30 - CHAT 1932 Mar # Changbai Time
8:00 - CST 1940
9:00 - CHAT 1966 May
8:30 - CHAT 1980 May
8:00 PRC C%sT
Asia/Shanghai 也叫中原標(biāo)準(zhǔn)時區(qū)
# Zhongyuan Time ("Central plain Time")
# most of China
# Milne gives 8:05:56.7; round to nearest.
Zone Asia/Shanghai 8:05:57 - LMT 1928
8:00 Shang C%sT 1949
8:00 PRC C%sT
Asia/Chongqing 也叫朧蜀時區(qū),主要代表廣西,貴州,海南,寧夏,四川,陜西,云南,甘肅主要部分,內(nèi)蒙古西部,青海西部,廣東的德慶,恩平,開平,羅定,臺山,新興,陽春,陽江,郁南,云浮,為東七區(qū)。
# Long-shu Time (probably due to Long and Shu being two names of that area)
# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan;
# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong
# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,
# Yangchun, Yangjiang, Yu'nan, and Yunfu.
Zone Asia/Chongqing 7:06:20 - LMT 1928 # or Chungking
7:00 - LONT 1980 May # Long-shu Time
8:00 PRC C%sT
Asia/Urumqi 也叫新藏時區(qū),主要代表甘肅的阿克賽哈族自治縣,安西縣,敦煌,肅北縣,連江縣,湛江市等等等。
# Xin-zang Time ("Xinjiang-Tibet Time")
# The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai;
# the Guangdong counties Xuwen, Haikang, Suixi, Lianjiang,
# Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi;
# east Tibet, including Lhasa, Chamdo, Shigaise, Jimsar, Shawan and Hutubi;
# east Xinjiang, including Urumqi, Turpan, Karamay, Korla, Minfeng, Jinghe,
# Wusu, Qiemo, Xinyan, Wulanwusu, Jinghe, Yumin, Tacheng, Tuoli, Emin,
# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,
# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.
Zone Asia/Urumqi 5:50:20 - LMT 1928 # or Urumchi
6:00 - URUT 1980 May # Urumqi Time
8:00 PRC C%sT
Asia/Kashgar 也叫昆侖時區(qū),主要代表西藏西部(普蘭縣,阿合奇縣,疏附縣,疏勒縣),新疆西部(阿克蘇,阿圖什,伊寧,和田,策勒,洛浦,尼勒克,昭蘇,特克斯,鞏留,察布查爾,霍城,博樂,皮山,等等等)
Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar
5:30 - KAST 1940 # Kashgar Time
5:00 - KAST 1980 May
8:00 PRC C%sT
PRC指向中原標(biāo)準(zhǔn)時區(qū)
Link Asia/Shanghai PRC
1949年中華人民共和國成立,我國廢除了原國民政府1939年設(shè)立的中原標(biāo)準(zhǔn)時區(qū)、昆侖時區(qū)、長白時區(qū)、隴蜀時區(qū)以及新藏時區(qū),在全國統(tǒng)一使用(UTC+8),并命名為北京時間。
1950年后,全國除西藏、新疆外全部統(tǒng)一使用北京時間。當(dāng)時新疆的地方人民代表大會為了方便群眾,設(shè)定了烏魯木齊時間:(UTC+6),如北京時間8點,烏魯木齊時間則是6點。新的時區(qū)調(diào)整如下:
1)Asia/Harbin(長白時區(qū)),Asia/Chongqing(隴蜀時區(qū)),Asia/Shanghai(中原標(biāo)準(zhǔn)時區(qū))時區(qū)名保留,定義都指向新定義的Asia/Shanghai(中國標(biāo)準(zhǔn)時區(qū))。全國統(tǒng)一使用。
中原標(biāo)準(zhǔn)時區(qū)改名為北京時區(qū),offset有調(diào)整
# Zone NAME STDOFF RULES FORMAT [UNTIL]
# Beijing time, used throughout China; represented by Shanghai.
Zone Asia/Shanghai 8:05:43 - LMT 1901
8:00 Shang C%sT 1949 May 28
8:00 PRC C%sT
2)Asia/Kashgar(昆侖時區(qū)),Asia/Urumqi(新藏時區(qū))時區(qū)名保留,定義都指向新定義的Asia/Urumqi(烏魯木齊時區(qū))。當(dāng)?shù)赝瑫r使用兩個時區(qū)定義。
新藏時區(qū)改名為新疆時區(qū)offset有調(diào)整
# Xinjiang time, used by many in western China; represented by ürümqi / ürümchi
# / Wulumuqi. (Please use Asia/Shanghai if you prefer Beijing time.)
Zone Asia/Urumqi 5:50:20 - LMT 1928
6:00 - +06
被合并的時區(qū)
L Asia/Urumqi Asia/Kashgar 昆侖時區(qū)合入新藏時區(qū)
L Asia/Shanghai Asia/Harbin 長白時區(qū)合入中原標(biāo)準(zhǔn)時區(qū)
L Asia/Shanghai Asia/Chongqing 朧蜀時區(qū)合入中原標(biāo)準(zhǔn)時區(qū)
L Asia/Shanghai Asia/Chungking 朧蜀時區(qū)新增別名Chungking,也合入中原標(biāo)準(zhǔn)時區(qū)
L Asia/Shanghai PRC
由于各種政治原因國家所在地區(qū),國家名稱和地區(qū)所屬國家會時常發(fā)生變更,這給時區(qū)管理帶來很多麻煩。例如:位于非洲東南部的內(nèi)陸國家“斯威士蘭王國”在2018年4月宣布將國名更改為“埃斯瓦蒂尼”;我們絕對熟悉的1997年7月1日,香港從英屬殖民地回歸到了我們偉大祖國的懷抱,所屬國就進行了變更。因此,IANA的策略是對政治變更保持中立性,時區(qū)通常不與國家綁定,也并不要求每個國家或國家首都必須具有時區(qū)名稱。
為了國內(nèi)用戶的使用方便,GaussDB(DWS)根據(jù)IANA的定義的語法規(guī)則,在內(nèi)部幫助用戶定義了 Asia/Beijing 時區(qū),其定義與 PRC 時區(qū)定義一致。
時區(qū)如何定義如何管理是頗具爭議的事情,并不存在絕對權(quán)威的時區(qū)數(shù)據(jù)庫。一個國家或地區(qū)的時區(qū)信息變更屬于獨立事務(wù),沒有義務(wù)必須通知IANA。IANA時區(qū)數(shù)據(jù)庫的權(quán)威性主要依賴時區(qū)數(shù)據(jù)庫維護者對相關(guān)國家或地區(qū)的了解程度。
因此,在IANA的時區(qū)定義里記錄了時區(qū)數(shù)據(jù)庫維護者收集時區(qū)信息的來源,有時候并不是很客觀。下面是IANA中關(guān)于我國時區(qū)信息的參照依據(jù)。
From Guy Harris:
From Bob Devine (1988-01-28): See TIME mag, 1986-02-17 p.52.
From U. S. Naval Observatory (1989-01-19):
From Anthony Fok (2001-12-20): from some Taiwan websites
From Paul Eggert (2006-03-22): Devine's note about Time magazine
From Jesper Norgaard Welen (2006-07-14): http://www.astro.com/atlas
From Paul Eggert (2008-02-11): I just now checked Google News for western news sources
From David Cochrane (2014-03-26): https://content.time.com/time/magazine/article/0,9171,960684,00.html
From Luther Ma (2014-04-22): Guo's report regarding Xinjiang
From Paul Eggert (2014-06-30): http://www.sinkiang.gov.cn/service/ourworking (2014-04-22).
From Paul Eggert (2017-01-05):
Guo Qing-sheng (National Time-Service Center, CAS, Xi'an 710600, China)
(Zhongguo ke ji shi liao, 中國科技史料). 2003;24(1):5-9.
http://oversea.cnki.net/kcms/detail/detail.aspx?filename=ZGKS200301000&dbname=CJFD2003
Guo Qing-sheng (Shaanxi Astronomical Observatory, CAS, Xi'an 710600, China)
An AP article "Shanghai Internat'l Area Little Changed"
From P Chan (2018-05-07):
1986-04-12 http://www.zj.gov.cn/attach/zfgb/198608.pdf p.21-22
1987-02-15 http://www.gov.cn/gongbao/shuju/1987/gwyb198703.pdf p.114
1987-09-09 http://www.gov.cn/gongbao/shuju/1987/gwyb198721.pdf p.709
1992-03-03 http://www.gov.cn/gongbao/shuju/1992/gwyb199205.pdf p.152
http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg
可見,2014年前IANA收集中國時區(qū)信息的來源還多是在西方的新聞,雜志,臺灣的網(wǎng)站等等。2014年之后收集的信息來自中國的西安授時中心,國家門戶網(wǎng)址等。
此外,因為很多國家的時區(qū)信息經(jīng)常變更,IANA通用時區(qū)數(shù)據(jù)庫中的時區(qū)數(shù)據(jù)會經(jīng)常更新。GaussDB(DWS)作為一個面向全球的通用數(shù)據(jù)庫產(chǎn)品,也會在每次發(fā)表新版本時從IANA同步最新的時區(qū)信息,確保用戶的軟件產(chǎn)品保持最新的時區(qū)信息。
自從1992年取消夏令時以來,我們的時區(qū)信息從未變更過,給我們的生產(chǎn)生活帶來了極大的便利。國內(nèi)用戶也不再需要關(guān)心時區(qū)相關(guān)的問題。
綜上,GaussDB(DWS)作為一款面向全球用戶的高性能分析型數(shù)據(jù)庫產(chǎn)品,對時區(qū)的支持也是符合工業(yè)界標(biāo)準(zhǔn)規(guī)范的。GaussDB(DWS)中時區(qū)的使用簡單方便,默認(rèn)時區(qū)的選擇也比較科學(xué)合理。
想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關(guān)注微信公眾號,和您分享最新最全的PB級數(shù)倉黑科技~
點擊關(guān)注,第一時間了解華為云新鮮技術(shù)~華為云博客_大數(shù)據(jù)博客_AI博客_云計算博客_開發(fā)者中心-華為云
在開箱華為 MateBook E 的時候,筆者甚至懷疑快遞是不是寄錯了,這不是 MatePad Pro 12.6 嗎?怎么盒子上寫的是 MateBook 呢?直到開機后亮出 Windows11 的圖標(biāo),我才確定這就是一臺二合一筆記本電腦。可以說,MateBook E 就是筆者有史以來接觸過的最接近平板電腦的 PC,與傳統(tǒng)二合一不同,它沒有自帶支架,機身僅有 1 個雷電 4 接口,同時它的重量也只有區(qū)區(qū) 709g,而在這小小的身體內(nèi),居然放下了 11 代酷睿 i7 處理器。
IT之家已經(jīng)拿到了 i7-1160G7+16+512G 版本的華為 MateBook E,具體配置在下圖。經(jīng)過了一段時間的體驗,現(xiàn)在為大家?guī)磉@款產(chǎn)品的上手感受。
先來看看本體,不論是正面還是側(cè)面,MateBook E 看起來都與 MatePad Pro 12.6 如出一轍。它的三圍約為 184.7*286.5*7.99mm, 重量約 709g。很難相信這樣輕薄的機身內(nèi)塞進了一臺完整的電腦。
正面是一塊 12.6 英寸、2560 x 1600 分辨率、240PPI 的 OLED 屏,90% 的屏占比相當(dāng)高,四邊等寬也讓觀感更加震撼。這也是華為首次將 OLED 屏幕用在 Windows 電腦上,OLED 屏有著色彩準(zhǔn)確,亮度高且均勻,對比度高的優(yōu)點,對創(chuàng)意設(shè)計人士非常友好,因此 MateBook E 的色彩鮮艷而準(zhǔn)確,對比度很高。
經(jīng)過我們用校色儀的實測,它能達到 100% 的 sRGB,98.7% 的 Adobe RGB 和 99.9% 的 DCI P3 色域覆蓋,表現(xiàn)非常出色,色彩覆蓋全面也不會過飽和,是一塊可以用于專業(yè)級修圖的好屏幕。
實測平均色彩偏離值 ΔE 0.18,最大色彩偏離值也只有 ΔE 0.91,相當(dāng)準(zhǔn)確。
除此之外,MateBook E 對于眼睛的保護也是很用心的,在硬件上,這塊屏幕也是首款通過了權(quán)威的三方機構(gòu) —— 德國萊茵 TüV Full-care Display 的認(rèn)證的華為筆記本電腦屏幕, 在軟件上,可以在電腦管家中開啟護眼模式,減少藍光的傷害。至于各位擔(dān)心的 PWM 調(diào)光問題,經(jīng)過筆者的實測,在 50% 亮度以上均是類 DC 調(diào)光,可以放心使用。
當(dāng)然,OLED 屏幕也有其固有的弊病,就是可能會燒屏。為了盡可能地減緩這一過程,建議降低息屏?xí)r間并開啟隱藏任務(wù)欄功能。
此外屏幕上方有一個 800 萬像素的高清攝像頭,還配有狀態(tài)指示燈,相比于大部分筆記本所采用的 100-500 萬像素攝像頭,華為 MateBook E 用于視頻通話相當(dāng)合適。為了改善通話質(zhì)量,華為還自主研發(fā)了 AI 降噪語音增強技術(shù),能夠調(diào)用機身的多麥克風(fēng),實時識別出人聲語音與干擾噪聲,并降低環(huán)境噪聲、提取出純凈的語音傳遞給對方,讓溝通更為高效。背面則是三涂三烤,玻纖材質(zhì),比較容易沾染指紋且不容易擦干凈。右上角有 1300 萬像素攝像頭,甚至還配備了閃光燈,用來會議記錄非常有用。
側(cè)面邊框相比普通的平板有了不小的差異。它的屏幕和邊框中間是由一個比較明顯的孔隙的,在這個孔隙中便是進風(fēng)口、出風(fēng)口和四揚聲器。這個四個揚聲器采取左兩個右兩個的對稱式布局,并由由 HUAWEI SOUND 進行專業(yè)調(diào)校,使得聲場更加廣闊、音色富有層次感和方向感。針對音樂、電影、游戲和通話等場景都有專門的優(yōu)化。
左側(cè)有一個電源指紋二合一按鈕和 3.5mm 耳機孔。右邊有且僅有一個雷電 4 接口,這意味著如果需要充電的話就沒有任何接口了。
那么有沒有什么解決方案呢?華為配套發(fā)布了一個外設(shè)叫“悅滑鍵盤”,通過這個外設(shè)就可以拓展出一個 65W 的 Type-C 充電口和 NFC 感應(yīng)區(qū)了。不過遺憾的是我們并沒有收到悅滑鍵盤,只有一款智能磁吸鍵盤。華為智能磁吸鍵盤更像是一個皮質(zhì)保護套,重量僅 440g。在外出攜帶時時可以用 A 面保護 MateBook E 的背面,展開后可以折疊 A 面,通過轉(zhuǎn)軸實現(xiàn)在 110°-160° 之間的無級角度支撐,最大程度的滿足了用戶在文檔編輯、影音娛樂以及手寫筆書寫等不同使用場景下的需求。
除了鍵盤外,MateBook E 也提供了華為 M-Pencil 二代手寫筆的支持,M-Pencil 可以通過磁吸吸附在右上角實現(xiàn)配對和充電,拿起即可彈窗顯示電量并自動連接,使用體驗很自然。沒電了只要無線快充 30 秒,即可使用 10 分鐘,60 分鐘可以充滿電,滿電情況下可使用約 10 小時,輕松用上一整個白天。
華為的電腦一直以來都是非常特別的存在,它是業(yè)內(nèi)少有的能將 Windows 電腦與華為其它生態(tài)產(chǎn)品深度結(jié)合的企業(yè)。當(dāng)連接手機時,可以實現(xiàn)啟用多屏協(xié)同、開啟一鍵熱點、備份手機相冊和視頻;當(dāng)連接平板時,可以啟用鏡像、擴展、共享三種模式、查看平板文件;當(dāng)連接顯示器時,可以啟用鏡像和擴展模式;當(dāng)連接最新出品的華為打印機時,可以查詢剩余墨粉、選擇文件的打印、復(fù)印、掃描,而以上生態(tài)互聯(lián)都是建立在無線、無感的基礎(chǔ)上的,體驗自然順暢。
最出名的便是傳統(tǒng)藝能多屏協(xié)同了,只需要用華為手機碰一下 NFC 感應(yīng)區(qū)就可以實現(xiàn)文件一碰傳和多屏協(xié)同,用觸屏在電腦上流暢操作手機。接下來就可以在電腦上操縱手機了,延遲非常低,穩(wěn)定性也很棒,并且可以同時打開兩個窗口,大大提升辦公效率。
前面有提到,MateBook E 鍵盤中間有個獨特的語音按鍵,只要按下就可以喚出一個 AI 語音浮窗,它可以實現(xiàn)中英日韓 AI 實時字幕,在辦公室看視頻也不尷尬了。如果是看外語視頻或者跨國會議的話,還能實現(xiàn)中英日韓實時轉(zhuǎn)譯,看外語視頻不在話下。
還能實現(xiàn)多種語言的語音輸入,這對于商務(wù)人群和文字工作者們相當(dāng)有利。這些 AI 語音功能在華為手機上就曾備受好評,如今華為免費把它搬到電腦上,這個相當(dāng)好評。
同樣我們測試了一下同時打開IT之家、最會買和云日歷,雖然只有 4 核 8 線程,但多開 App 整體操作是比較流暢的,由于 GPU 尚未適配,因此動態(tài)效果會比較卡頓,但只要畫面中沒有太多動態(tài)元素,整體還是跟手的,如果你不打游戲的話,拿它替代安卓平板可行性很高。
前面我們有提到,MateBook E 支持第二代 M-Pencil 手寫筆,Windows11 也在系統(tǒng)層面提供了對手寫筆的支持,因此在常用的 OneNote、Drawboard PDF、LiquidText 和 Affinity Designer 等等手寫筆應(yīng)用/軟件中都能提供不錯的體驗。
雖然 M-Pencil 筆身上沒有按鍵,但它其實筆桿處是有隱藏的傳感器的,只需要敲擊兩下就能喚起截圖等快捷方式,相當(dāng)實用。
IT之家拿到的 MateBook E 搭載了 11 代低壓酷睿 i7-1160G7 處理器,采用 10nm superfin 工藝,4 核心 8 線程,主頻 2.1 Ghz,單核睿頻可達 4.4GHz,是一款主打單核性能的處理器。
MateBook E 搭載的內(nèi)存是 3733MHz 的板載 LPDDR4X 內(nèi)存,沒有上 4266MHz 還是比較遺憾。但這個性能表現(xiàn)已經(jīng)相當(dāng)不錯了,與我們之前測試的 MateBook 13s 非常接近。
MateBook E 的硬盤是板載的,型號尚不清楚,但傳輸速度還是不錯的,可以達到中等偏上的 Nvme 硬盤的水平,為日常流暢使用提供可靠的保障。當(dāng)然在辦公之余,如果需要玩玩《英雄聯(lián)盟》、《CS:GO》之類的輕度游戲也是沒有問題的。《英雄聯(lián)盟》在 1920*1200 分辨率最高畫質(zhì)下可以在 88 幀左右流暢運行。
最后,我們還測試了一下它的續(xù)航。我們開到 50% 亮度 + 省電模式,使用 PCMark8 連續(xù)運行直到關(guān)機,最后它堅持了 3 個小時 19 分鐘,考慮到體型,這個續(xù)航表現(xiàn)還是可以的。
在之前使用初代 MatePad Pro 的時候,筆者就常常配合云電腦 App 使用,因為 EMUI 打打字還行,像筆者這樣整天需要和圖文視頻打交道的話還是得用 Windows。那個時候我就在想,要是能把 MatePad 刷成 Windows 系統(tǒng)就好了。
在市面上也有一些類似定位的 Windows 平板二合一,但如果要輕薄的話,就只能買到一些功能殘缺性能羸弱的“寨板”,如果要體驗的話,又不可避免的會帶來便攜性的下降。而華為 MateBook E 正是一臺在輕薄和體驗之間做出權(quán)衡的產(chǎn)品。如果你是一個需要頻繁出差、商務(wù)洽談和視頻會議的職場人士的話,那么華為 MateBook E 會是一臺為你減負(fù)的好幫手。
目前華為 MateBook E 已經(jīng)發(fā)布,首發(fā)價 5999 元,有需要的可以去了解一下。