自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一天有24個小時?別開玩笑了!

大數(shù)據(jù) 數(shù)據(jù)分析
今天清理郵件,發(fā)現(xiàn)這樣一條垃圾信息。雖然美股最近的表現(xiàn)很暴躁,但我沒有銀子花在這無聊的事情上。我有一筆錢,蹲在A股的一只退市股上。由于虧的太多,所以現(xiàn)在只剩下夢想。

 

??

今天清理郵件,發(fā)現(xiàn)這樣一條垃圾信息。雖然美股最近的表現(xiàn)很暴躁,但我沒有銀子花在這無聊的事情上。我有一筆錢,蹲在A股的一只退市股上。由于虧的太多,所以現(xiàn)在只剩下夢想。

??

 

這條信息讓我感興趣的是,夏令時。我曾從很多地方看到過這個詞,它總讓我想到火熱浪漫的海灘,撅著屁股曬太陽的美女,以及被暴力甩起又被摔碎的浪花。

魔幻的時間

關于時間的問題,首先讓我們看一段神奇的代碼。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sTime = "2020-03-08 00:00:00";
sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"));
TimeZone.setDefault(TimeZone.getTimeZone("America/New_York"));

Date time = sdf.parse(sTime);
System.out.println(time.getTime());
System.out.println(time);
Calendar cd = Calendar.getInstance();
cd.setTime(time);// 2小時以后是幾點?
cd.add(Calendar.HOUR, 2);
time = cd.getTime();
System.out.println("------------------------------");
System.out.println(time.getTime());
System.out.println(time);

我們從字符串生成了一個時間,就是上面郵件提到的時間。然后在此基礎上加上了2個小時。結果運行的時候,神奇的事情發(fā)生了:打印結果顯示,兩個時間之間的差距是3個小時!

有圖為證。

??

 

真是見鬼。

這是時間魔幻性的一面。

夏令時會導致某一天多出一個小時,或者少出一個小時。

要了解夏令時,就首先需要了解時區(qū)的概念。在《時間的秩序》一書里,講解到時區(qū)的誕生其實是多種方案權衡的結果。最終全球被分為24個時區(qū),每個時區(qū)跨經(jīng)度15°。

其中,北京時間,是中國采用國際時區(qū)東八時區(qū)的區(qū)時作為標準時間,也是我們現(xiàn)在用的時間,但它的位置是在山西蒲城。

但在清代,卻是用北京中軸線上的鼓樓作為標準時間的。xjjdog在那里呆過一段時間,是一個非常美麗幽靜的地方。

時間計時

扯了這么多沒用的,我們來看一下常見的GMT和UTC。

一般對UTC和GMT的介紹都比較晦澀,我們平常在代碼中遇到的時間有4種,下面以人話進行說明。

GMT

格林尼治標準時間,是指位于倫敦郊區(qū)的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經(jīng)線。


 

為什么它就能成為本初子午線,這不是地理原因,是歷史原因。要是我有話語權的話,我會將神奇的百慕大三角,如今的西經(jīng)64°45′,定為0度。

UTC

UTC一般和GMT視為無差別的表示方法。但GMT是以地球自轉來計時的,這個龐然大物并不是那么準確。

UTC是原子時計時,更加可靠。每年格林尼治天文臺會發(fā)調時信息,就是基于UTC的。

所以你現(xiàn)在看到的GMT,是舊世界的計時方法,最先進的計時,就是UTC。

協(xié)調世界時是以原子時秒長為基礎,在時刻上盡量接近于世界時的一種時間計量系統(tǒng)。(這里面涉及到穩(wěn)定的原子輻射,比地球的自轉更加準確)。

UTC原子鐘放在美國科羅拉州博爾德市,最先進的鋁離子光鐘每237億年偏差一秒!誰能等到這一天別忘了把我從時光里挖出來。

Unix Time

Unix時間戳。是從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。

意思就是,1970年前的時間戳,是負數(shù)。

為什么是1970?因為早期的機器都是32位的。用32位來表示時間的最大間隔是68年,而最早出現(xiàn)的UNIX操作系統(tǒng)考慮到計算機產生的年代和應用的時限綜合取了1970年1月1日作為UNIX TIME的紀元時間。

夏令時DST

下面提到該死的夏令時。這是一個人為規(guī)定的時間。

一般在天亮的早的夏季,人為將時間調快一小時。這樣可以使人早起早睡,減少照明量,以充分利用光照資源,從而節(jié)約照明用電。全世界有近110個國家每年要實行夏令時。

它又稱“日光節(jié)約時制”和“夏令時間”,在這一制度實行期間所采用的統(tǒng)一時間稱為“夏令時間”。

時間本來就是一個抽象的,看不見摸不著的東西。就連我們的鐘表,也會在極限情況下失真。夏令時讓時間更加復雜了一些。

影響

我們可以通過代碼發(fā)現(xiàn)以下有悖常理的事情:

1)每一天并不總是有24小時,它還有可能是23,有可能是25。

2)Date日期處理類打印的并不總是如我們所愿。

public static void dayTime(TimeZone timeZone) {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("Time Zone is " + timeZone.getDisplayName() + " " + timeZone.getID());
Calendar start = Calendar.getInstance(timeZone);
//UTC 1970-01-01
start.setTime(new Date(0));
System.out.println("start=" + fmt.format(start.getTime()));
//current time
long end = Calendar.getInstance(timeZone).getTimeInMillis();
boolean find = false;
for (long i = start.getTimeInMillis(); i < end; i = start.getTimeInMillis()) {
start.add(Calendar.DATE, 1);
if ((start.getTimeInMillis() - i) % TimeUnit.DAYS.toMillis(1) != 0) {
find = true;
System.out.println("from " + fmt.format(new Date(i)) +
"to " + fmt.format(start.getTime()) +
" has " + (start.getTimeInMillis() - i) + "ms" +
"[" + (start.getTimeInMillis() - i) / (3600 * 1000L) + "hours]");
}
}
if (!find) {
System.out.println("Every day is ok.");
}
}

代碼顯示,在中國1986-1991年的這段時間里,一天并不總是有24個小時。

??

 

這些肯定是屬于比較個性化的數(shù)據(jù)了。那么,這些數(shù)據(jù)是從什么地方獲取的呢?我們跟蹤代碼,可以發(fā)現(xiàn)sun.util.calendar.ZoneInfo 類。而操作系統(tǒng)存放了每一個時區(qū)的具體配置文件,通過它們的配合,就能完成不同地域不同時間的展示。

因為時區(qū)問題造成的BUG是時有發(fā)生的,尤其是國際項目。由于時區(qū)的不同,有可能在錄入部分人的出生日期時,會發(fā)現(xiàn)多了或者少了一天!比如中國,出生在1986-1991年的這些人,就可能碰到這種幽靈問題。

這一區(qū)間的小伙伴注意了,在某一刻,雖然活著,你可能并不存在!

各種時間表示這樣轉來轉去的,總是讓人頭暈。好的辦法就是,把所有的時區(qū),調整成一致的。甚至是mysql,也提供了serverTimezone參數(shù)來進行統(tǒng)一協(xié)調。

&serverTimezone=Asia/Shanghai

JVM也提供了參數(shù)。

-Duser.timezone=GMT+8

幾乎每個地方都充斥著這該死的timezone。是我們太弱小了,連個地球都沒統(tǒng)一起來。

實際上,夏令時在中國,從1986-1992只實行了6年,之后就取消了。真是謝天謝地,每一天可以踏踏實實的睡覺,不用擔心這些靈異事件了。

加上科技的發(fā)達,城里6點就亮起了霓虹燈。哪里還有什么白天黑夜。是時候全部取消夏令時了,可惜我說了不算(狗頭保命)。

End

下次要是有人問你,一天有24個小時么?不要像剛認識數(shù)字的小學生一樣,行高彩烈的喊是。由于夏令時的加入,可能在你眨一下眼睛之間,“一個小時”就過去了。

時間是個相對的產物,不同的人有不同的看法。比如,空姐的手表,總是比你的走的慢一些—這就是她們年輕一點的原因。

隨著我們對世界的了解,很多以前堅定不移的認為對的事情,已經(jīng)慢慢的開始腐爛變質。我們只是習慣,但事實從未變過。

就如同你認為現(xiàn)在打字的我是個程序員,但實際上我是一只狗。

意識形態(tài)的東西,誰能說得清呢。

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2013-11-27 10:16:50

2017-10-26 11:18:13

SSD機械硬盤固態(tài)硬盤

2014-08-18 10:46:10

IE瀏覽器

2025-04-07 08:45:00

C 語言數(shù)組

2011-12-11 19:14:32

Siri

2018-07-23 12:20:52

編程語言Python入門

2011-08-03 09:00:54

JavaJava 7

2013-01-08 13:32:31

SEO GTD

2013-09-17 09:39:49

可口可樂數(shù)據(jù)中心微軟

2011-12-31 09:11:08

OracleAMD

2013-09-17 09:37:09

可口可樂中國數(shù)據(jù)中心

2013-04-03 13:52:42

Windows Blu

2020-06-03 10:54:28

戴爾

2016-03-31 09:53:45

互聯(lián)網(wǎng)愚人節(jié)谷歌

2017-07-17 16:13:28

戴爾數(shù)字化轉型

2017-07-21 16:34:58

戴爾數(shù)字化轉型

2021-11-19 16:49:32

互聯(lián)網(wǎng)996加班

2017-12-27 13:56:16

JavaSCript語言開發(fā)

2020-02-25 16:48:15

微盟集團人為破壞癱瘓

2012-06-05 00:26:58

程序員
點贊
收藏

51CTO技術棧公眾號