事情背景交待:在電商中,活動是經(jīng)常存在的荒叶,今天就來說一下活動的倒計時碾阁,一般分為幾種,是活動結束還剩下多久些楣,還有多久可以開始活動脂凶,有同學說,這還不好算愁茁,不就是用時間差進行比較蚕钦,轉化一下時間時間么?確實鹅很,如果是單純的都在某一個地方嘶居,搞這活動,可能是這個樣子道宅,但是食听,如果說要面對是好幾個國家呢?這個事兒污茵,就有搞頭了樱报。首先,要計算倒計時泞当,還得從首先來一個統(tǒng)一的維度迹蛤,你中國人,有中國的時區(qū)襟士,美國人盗飒,有美國的時區(qū),什么陋桂?這么多逆趣,一整就亂。
? ? 一般的話嗜历,做這樣的業(yè)務宣渗,首選的就是統(tǒng)一時間,管你哪的人梨州,我們將時間維度統(tǒng)一到一個上面痕囱,那就是UTC時間,同時服務器將相關活動開時間,與結束時間暴匠,都統(tǒng)一的傳輸過來鞍恢。在這個過程中,有幾個東西需要明確一下
? ?1)時間戳在任何的設備上取的,是一樣的帮掉,他不會受你所在的時區(qū)問題而受影響 弦悉。此是一坑,可能有好多的同學會覺得旭寿,不同的時區(qū)警绩,其值也是不一樣的。
? ?2)對時間進行format的時候盅称,需要設定肩祥,其時間所在的時區(qū),不然缩膝,fromat的結果時間戳可能就不對了混狠。如,服務器傳送給你的時間是:
2016-08-12 16:00:00, ?在對其轉化到Date的時候要設置這個時間疾层,其實所在的時區(qū)将饺。
SimpleFormat format=new SimpleFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(['你所對應的時區(qū)']);
3)在進行過程中痛黎,出現(xiàn)過時間差予弧,總差上一個12小時,檢測了好久湖饱,才發(fā)現(xiàn)掖蛤,是這個東西在做鬼。就是12進制時間井厌,與24進制時間的關系問題蚓庭。記住:
yyyy-mm-dd HH:mm:ss ? 與 ?yyyy-mm-dd hh:mm:ss ?的區(qū)別仅仆。
4)最后獻上一個時間轉化工具類