日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android unix时间,android: 日期转Unix时间戳,Unix时间戳转日期,带时区

發(fā)布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android unix时间,android: 日期转Unix时间戳,Unix时间戳转日期,带时区 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、UTC時間&GMT時間

UTC時間是時間標準時間(Universal Time Coordinated),UTC是根據(jù)原子鐘來計算時間,誤差非常小。

UTC也是指零時區(qū)的時間,如果要表示其他時區(qū)的時間,這里要注意沒有UTC+0800或者UTC+8這樣的表示方式(至少Java里面沒有,一般用于口頭表示),只有Asia/Shanghai這樣的表示方式,詳細的時區(qū)列表參考這個文檔時區(qū)列表。

GMT時間是根據(jù)地球的自轉(zhuǎn)和公轉(zhuǎn)來計算時間,老的時間計量標準,這里我們不過多討論

2、表達時間方式

我們一般表示時間都會帶格式以方便理解,例如時間表達式是'2018-09-12 08:00:00',因為我們在東八區(qū),所以默認是:北京時間2018年9月12號8點整。但是如果是一個美國人看到這個時間,就會認為是美國東部or西部時間的2018年9月12號8點整。所以從這種表達方式很不準確,因為沒有指明到底是哪個時區(qū)的時間!!!!

所以準確的表達時間必須帶有時區(qū),例如2018-09-12 08:00:00+0800,表達了Asia/Shanghai這個時區(qū)的時間2018年9月12號8點整。這里要注意+0800并不是表示加8小時的意思,只是表示這個時間'2018-09-12 08:00:00'是東八區(qū)Asia/Shanghai的時間,僅此而已。

3、UTC時間的時間戳

講清楚了時間表達方式,再講時間戳。其實時間戳是沒有時區(qū)概念的,或者說時間戳只能是0時區(qū)的。時間戳是從1970-01-1 00:00:00+0000開始的(原因大家都知道),也就是在'1970-01-1 00:00:00+0000'這個時間點,時間戳是0。再換句話說在'1970-01-1 08:00:00+0800'時間戳也是0。這也是Java里時間組件的默認方式,不管用戶輸入的人類可識別的時間是什么格式,在內(nèi)部統(tǒng)一存的是時間戳。

例如時間是'2018-09-01 08:00:00+0800',那么使用date.getTime()獲取到時間戳是1535760000000;時間是'2018-09-01 00:00:00+0000',獲取到時間戳也是1535760000000。

try{

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ", Locale.getDefault());

Log.i("xp.chen", sdf.parse("2018-09-01 08:00:00+0800").getTime()+"");

Log.i("xp.chen", sdf.parse("2018-09-01 00:00:00+0000").getTime()+"");

Log.i("xp.chen", sdf.parse("1970-01-01 00:00:00+0000").getTime()+"");

}catch(ParseException e) {

e.printStackTrace();

}

運行結(jié)果:

2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 1535760000000

2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 1535760000000

2019-05-08 16:09:10.935 21352-21352/? I/xp.chen: 0

4、時間戳與日期之前的相互轉(zhuǎn)換

【時間戳轉(zhuǎn)日期】

long curTime = 1535760000000L;

String timeStr= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault()).format(newDate(curTime));

Log.i("xp.chen", "timeStr: "+timeStr);

運行結(jié)果:

2019-05-08 16:14:58.573 22835-22835/? I/xp.chen: timeStr: 2018-09-01 08:00:00 +0800

【日期轉(zhuǎn)時間戳】

try{

String src_dateStr= "2018-09-01 08:00:00 +0800";

Calendar calendar=Calendar.getInstance();

calendar.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault()).parse(src_dateStr));long timeInMillis =calendar.getTimeInMillis();

Log.i("xp.chen", "timeInMillis: "+timeInMillis);

}catch(ParseException e) {

e.printStackTrace();

}

運行結(jié)果:

2019-05-08 16:14:58.573 22835-22835/? I/xp.chen: timeInMillis: 1535760000000

【獲得當前日期字符串含時區(qū)】

public staticString getDateStrIncludeTimeZone() {

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z", Locale.getDefault());return sdf.format(newDate());

}

總結(jié)

以上是生活随笔為你收集整理的android unix时间,android: 日期转Unix时间戳,Unix时间戳转日期,带时区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。