中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
不同時(shí)區(qū)之間,時(shí)間的轉(zhuǎn)換?
一、問(wèn)題描述
   當(dāng)軟件需要國(guó)際化的時(shí)候,我們不得不考慮時(shí)間的問(wèn)題。不同的地方有不同的時(shí)區(qū),從而顯示的時(shí)間是不一樣的。而且很多國(guó)家在某一段時(shí)間還可能會(huì)實(shí)行夏令時(shí),顯示的時(shí)間又不一樣。為了保證時(shí)間的正確性,必須有統(tǒng)一的基線,從而不得不考慮下列時(shí)間之間的轉(zhuǎn)換。
   a、long timeToUTC(time,timezone)                //把給定的時(shí)間根據(jù)給定的時(shí)區(qū)轉(zhuǎn)化為UTC
   b、String UTCToTime(long,timezone)              //把給定的UTC轉(zhuǎn)化為制定時(shí)區(qū)的時(shí)間
   c、timeToTime(time,timezone1,timezone2)         //把給定的時(shí)間根據(jù)制定的時(shí)區(qū)轉(zhuǎn)化為另指定時(shí)區(qū)的時(shí)間
   //考慮到數(shù)據(jù)的存儲(chǔ),還必須考慮數(shù)據(jù)庫(kù)對(duì)于時(shí)間字段的格式。

二、解決方法
   顯示時(shí)間的不同,主要原因的是時(shí)區(qū)不同。如果不考慮自定義時(shí)區(qū)的問(wèn)題,JODA包就能很好解決上面的問(wèn)題,但是如果考慮自定義時(shí)區(qū)(很多軟件由于考慮夏令時(shí),從而增加了自定義時(shí)區(qū)的功能來(lái)設(shè)置夏令時(shí)),則我們必須自己來(lái)寫(xiě)轉(zhuǎn)換函數(shù)。
   a、JODA
 1
public long timeToUTC(String theSourceTime, int sourceWbxTZID)
 2
        
throws Exception {
 3
        DateTime targDate;        
 4
        
if (sourceWbxTZID == (-1)) {  //UTC
 5
            
//mdyFormatter:org.joda.time.format.DateTimeFormatter
 6
            targDate = mdyFormatter.withZone(DateTimeZone.UTC).parseDateTime(theSourceTime);//
 7
        }
 else {
 8
            targDate 
= mdyFormatter.withZone(
 9
                DateTimeZone.forID(convertTimezone(sourceWbxTZID)))
10
                .parseDateTime(theSourceTime);
11
        }

12
        
return targDate.getMillis();
13
    }
   
14
    
public String UTCToTime(long theUTCTime, int targetWbxTZID)
15
        
throws Exception {
16
        DateTime theSourceTime 
= new DateTime(theUTCTime);
17
        
if (targetWbxTZID == (-1)) {
18
            
return mdyFormatter.withZone(DateTimeZone.UTC).print(theSourceTime);
19
        }
 else {
20
            
return mdyFormatter.withZone(
21
                DateTimeZone.forID(convertTimezone(targetWbxTZID))).print(
22
                theSourceTime);
23
        }

24
    }

   b、自編寫(xiě)
 1
/**
 2
   *sourceDate:需要轉(zhuǎn)換的日期,此日期必須是居于GMT的時(shí)間。
 3
   *timezone:
 4
   *gMT:是否是GMT時(shí)間
 5
   *isConsiderDayLight:是否考慮夏令時(shí)
 6
   
*/

 7
  
private long convert(Date sourceDate, Timezone timezone, boolean gMT, boolean isConsiderDayLight) throws Exception {
 8
    
int gMTOffSet = (int) timezone.getGmtOffset();//獲取偏移量
 9
    long sourceTime = sourceDate.getTime();
10
    
if (gMT) {
11
        targetTime 
= sourceTime + gMTOffSet * 60 * 1000;
12
    }
 else {
13
        targetTime 
= sourceTime + ( -1* gMTOffSet * 60 * 1000;//北京偏移8個(gè)小時(shí),如是:-8*60*1000
14
    }

15
    
//下面是考慮夏令時(shí)
16
    

17
    
return targetTime;
18
    
19
  }

20
  
public long timeToUTC(String theSourceTime, int sourceWbxTZID)
21
        
throws Exception {
22
        SimpleDateFormat sdf 
= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");        
23
        sdf.setTimeZone(TimeZone.getTimeZone(
"GMT"));
24
        Date date
=sdf.parse(theSourceTime);                
25
        Timezone timezone
=(Timezone)keyedByWbxTZID.get(String.valueOf(sourceWbxTZID));//此函數(shù)主要是獲取Timezone相關(guān)的數(shù)據(jù)
26
        return convert(date,timezone,false,true);        
27
  }
 
28
  
public String UTCToTime(long theUTCTime, int targetWbxTZID)
29
        
throws Exception {
30
        Date date
=new Date();
31
        date.setTime(theUTCTime);
32
        Timezone timezone
=(Timezone)keyedByWbxTZID.get(String.valueOf(targetWbxTZID));//此函數(shù)主要是獲取Timezone相關(guān)的數(shù)據(jù)
33
        long time=convert(date,timezone,true,true); 
34
        SimpleDateFormat sdf 
= new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
35
        sdf.setTimeZone(TimeZone.getTimeZone(
"GMT"));
36
        
return sdf.format(new Date(time));
37
  }


三、相關(guān)的一些時(shí)間概念 
GMT:就是格林威治標(biāo)準(zhǔn)時(shí)間的英文縮寫(xiě),格林威治是倫敦泰晤士河南岸的一個(gè)地方,由于從19世紀(jì)開(kāi)始,因?yàn)槭澜绺鲊?guó)來(lái)往頻繁,而歐洲大陸、美洲大陸和亞洲大陸都有各自的時(shí)區(qū),所以為免混亂,各國(guó)的代表就在1884 年在美國(guó)華盛頓召開(kāi)了國(guó)際大會(huì),通過(guò)協(xié)議選出倫敦的格林威治,作為全球時(shí)間的中心點(diǎn),格林威治標(biāo)準(zhǔn)時(shí)間因而誕生。所以有GMT功能的腕表就是說(shuō)腕表?yè)碛衅渲械男r(shí)表盤(pán)可以顯示GMT時(shí)間。

UTC:短波傳送很遠(yuǎn),可能經(jīng)過(guò)許多國(guó)家、許多不同時(shí)區(qū),所以需要有一統(tǒng)時(shí)間作標(biāo)準(zhǔn), 這個(gè)標(biāo)準(zhǔn)時(shí)間Co-ordinated Universal Time 縮寫(xiě)UTC 或稱(chēng) UT。過(guò)去稱(chēng)為格林威治時(shí)間(GMT),雖然有些地方有冬令時(shí)間或夏令時(shí)間,但UTC時(shí)間是不會(huì)改的,大家都以它為標(biāo)準(zhǔn)。

DST:Daylight saving time .(夏令時(shí),各個(gè)國(guó)家開(kāi)始和結(jié)束時(shí)間的計(jì)算方法是不一樣的)
美國(guó),加拿大夏令時(shí)起止時(shí)間:每年3月份第二個(gè)星期天到11月份第一個(gè)星期天(亞利桑那州、夏威夷、波多黎各、維爾京群島和美屬薩摩亞除外)。

德國(guó)、意大利等多數(shù)歐洲國(guó)家夏令時(shí)起止時(shí)間:每年3月份最后一個(gè)星期天到10月份最后一個(gè)星期天。


MST:Mountain Standard Time
PST:Pacific Standard Time
EST:Eastern Standard Time

很多朋友對(duì)于美劇官方網(wǎng)站上的時(shí)間表達(dá)方式不是很理解。
這里說(shuō)明一下,以Prison Break為例:Monday 8/7c
它指的是:星期一 東部時(shí)間8點(diǎn) 中部時(shí)間7點(diǎn)。兩地同時(shí)播放,不過(guò)因?yàn)闀r(shí)差問(wèn)題,鐘表上顯示的時(shí)間有一個(gè)小時(shí)的差別。
盡管官網(wǎng)的播放時(shí)間對(duì)于美國(guó)以外的朋友來(lái)說(shuō)意義不大,不過(guò)如果你愿意查出相對(duì)應(yīng)的北京時(shí)間,可以使用http://www.worldtimeserver.com 的服務(wù),我相信國(guó)內(nèi)也有很多類(lèi)似的時(shí)間轉(zhuǎn)換網(wǎng)站,包括google,百度都可以,這里就不再羅嗦了。至少目前來(lái)說(shuō),美東時(shí)間和北京時(shí)間相差12小時(shí),也就是說(shuō),我們比美東快12個(gè)小時(shí)。Prison Break的播放時(shí)間就是北京時(shí)間第二天的早上8點(diǎn),也就是星期二 8:00AM.

相對(duì)于美國(guó),我們國(guó)家的時(shí)區(qū)劃分相對(duì)簡(jiǎn)單很多,特別是取消夏令時(shí)后,不出國(guó),我們基本上不用考慮時(shí)差問(wèn)題。

美國(guó)本土大陸地區(qū)采用的時(shí)區(qū)自東向西為:
東岸標(biāo)準(zhǔn)時(shí)區(qū) (Eastern Standard Time; EST; UTC-5; R區(qū)),包括大西洋沿岸各州、墨西哥灣及密西西比河以東地區(qū)。
中部標(biāo)準(zhǔn)時(shí)區(qū) (Central Standard Time; CST; UTC-6; S區(qū)),包括密西西比河沿岸以及以西州份的大部份。
山部標(biāo)準(zhǔn)時(shí)區(qū) (Mountain Standard Time; MST; UTC-7; T區(qū)), 沿大陸分水嶺—洛磯山一線的州份、大盆地及科羅拉多河流淢。
太平洋標(biāo)準(zhǔn)時(shí)區(qū) (Pacific Standard Time; PST; UTC-8; U區(qū)),包括太平洋沿岸地區(qū)及內(nèi)華達(dá)州。

美國(guó)本土大陸地區(qū)以外地區(qū)采用的時(shí)區(qū)
阿拉斯加標(biāo)準(zhǔn)時(shí)區(qū) (Alaska Standard Time; AKST; UTC-9; V區(qū)) 包括阿拉斯加州大部份地區(qū)。
夏威夷—阿留申時(shí)區(qū) (Hawaii-Aleutian Standard Time,非正式:夏威夷標(biāo)準(zhǔn)時(shí) Hawaii Standard Time; HST; UTC-10; W區(qū)),包括夏威夷州及169°30'W以西的阿留申群島。

美國(guó)屬土采用的時(shí)區(qū)
大西洋標(biāo)準(zhǔn)時(shí)區(qū) (Atlantic Standard Time; AST, UTC-4; Q區(qū)) 包括波多黎各及美屬處女島。
薩摩亞時(shí)區(qū) (Samoa Standard Time; UTC-11, X區(qū))包括美屬薩摩亞。
查莫羅時(shí)區(qū) (Chamorro Standard Time; UTC+10, Zone K)包括關(guān)島及北馬里亞納群島。

中國(guó)的時(shí)區(qū):我們使用北京時(shí)間,以前稱(chēng)中原標(biāo)準(zhǔn)時(shí)間,現(xiàn)在臺(tái)灣依然使用這個(gè)名稱(chēng),是中國(guó)大陸、香港、澳門(mén)和臺(tái)灣的標(biāo)準(zhǔn)時(shí)間。在時(shí)區(qū)劃分上,屬東八區(qū),比世界協(xié)調(diào)時(shí)早8小時(shí),記為UTC+8。

嚴(yán)格地講,北京時(shí)間并不是北京(東經(jīng)116°)地方的時(shí)間,而是東經(jīng)120°度地方的地方時(shí)間。而北京時(shí)間也不是在北京確定的,而是由位于中國(guó)版圖幾何中心位置陜西臨潼的中國(guó)科學(xué)院國(guó)家授時(shí)中心的9臺(tái)銫原子鐘和2臺(tái)氫原子鐘組通過(guò)精密比對(duì)和計(jì)算實(shí)現(xiàn),并通過(guò)衛(wèi)星與世界各國(guó)授時(shí)部門(mén)進(jìn)行實(shí)時(shí)比對(duì)。

清光緒28年(公元1902年),中國(guó)海關(guān)曾制定海岸時(shí),以東經(jīng)120度之時(shí)刻為標(biāo)準(zhǔn)。公元1912年,位于北京的中央觀象臺(tái)將全國(guó)分為五個(gè)時(shí)區(qū),民國(guó)28年3月9日中華民國(guó)內(nèi)政部召集標(biāo)準(zhǔn)時(shí)間會(huì)議,確認(rèn)1912年劃分之時(shí)區(qū)為中華民國(guó)標(biāo)準(zhǔn)時(shí)區(qū)。分別為:
1昆侖時(shí)區(qū) UTC+5.5 新疆西部與部分西藏
2新藏時(shí)區(qū) UTC+6 新疆及西藏
3隴蜀時(shí)區(qū) UTC+7 中國(guó)中部
4中原標(biāo)準(zhǔn)時(shí)區(qū) UTC+8 中國(guó)海岸
5長(zhǎng)白時(shí)區(qū) UTC+9 中國(guó)東北
1949年之后,中國(guó)大陸將“中原標(biāo)準(zhǔn)時(shí)間”改稱(chēng)“北京時(shí)間”,并在全國(guó)統(tǒng)一使用該時(shí)間作為標(biāo)準(zhǔn)時(shí)間。臺(tái)灣則維持“中原標(biāo)準(zhǔn)時(shí)間”之名稱(chēng),也有稱(chēng)“臺(tái)北時(shí)間”或“國(guó)家標(biāo)準(zhǔn)時(shí)間”。

由于中國(guó)大陸全境都采用北京時(shí)間作為標(biāo)準(zhǔn)時(shí),因此在中國(guó)西部的陜西、甘肅、新疆等省和自治區(qū)造成了生活不便,比如在烏魯木齊,北京時(shí)間比當(dāng)?shù)貢r(shí)間提前兩個(gè)小時(shí),北京時(shí)間早8時(shí)30分(中國(guó)大陸公務(wù)機(jī)關(guān)通行的上班時(shí)間)相當(dāng)于當(dāng)?shù)貢r(shí)間早晨6時(shí)30分。作為解決措施,一些新疆地區(qū)居民使用烏魯木齊時(shí)間,即東六區(qū)(UTC+6)時(shí)間。

2005年,一些中華人民共和國(guó)全國(guó)人民代表大會(huì)代表提出將中國(guó)大陸時(shí)區(qū)加以細(xì)分的建議,提議分為以北京時(shí)間為基礎(chǔ)的東部時(shí)間(UTC+8)、以陜西地區(qū)時(shí)間為基礎(chǔ)的中部時(shí)間(UTC+7)和以新疆、西藏地區(qū)時(shí)間為基礎(chǔ)的西部時(shí)間(UTC+6)。后又將該提議改為分為兩個(gè)時(shí)區(qū),即UTC+8和UTC+7兩個(gè)時(shí)區(qū),陜西、四川、重慶、貴州、云南及以西各省采用UTC+7的西部時(shí)間。但該提案尚未赴諸表決。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
徹底弄懂GMT、UTC、時(shí)區(qū)和夏令時(shí)
安卓國(guó)際化開(kāi)發(fā)中的時(shí)區(qū)問(wèn)題之
UTC和GMT時(shí)間
世界時(shí)鐘 :: 洛杉磯 (Los Angeles), 美國(guó) (United States)
太贊了!最全的Python 處理日期與時(shí)間的全面總結(jié)!
Java中的時(shí)區(qū)轉(zhuǎn)換小結(jié)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服