android 獲取時間戳

由于項目需要使用時間戳Timestamp:

1.什么是時間戳

時間戳的定義:通常是一個字符序列,唯一地標識某一刻的時間。數(shù)字時間戳技術是數(shù)字簽名技術一種變種的應用。

規(guī)則:是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)(引用自百度百科)

一般數(shù)據(jù)庫里如果用Date這個類的話,那你取出來的時候只能到某一天,也就是日,但是Timestamp的話,就是到小時一直到納秒,很精確的。

2.時間戳的好處

時間戳就是一種類型,只是精度很高,比datetime要精確的多,通常用來防止數(shù)據(jù)出現(xiàn)臟讀現(xiàn)象。

3.時間戳和時間的互相轉(zhuǎn)換
/* 
     * 將時間轉(zhuǎn)換為時間戳
     */    
    public static String dateToStamp(String s) throws ParseException{
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = simpleDateFormat.parse(s);
        long ts = date.getTime();
        res = String.valueOf(ts);
        return res;
    }

    /* 
     * 將時間戳轉(zhuǎn)換為時間
     */
    public static String stampToDate(String s){
        String res;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long lt = new Long(s);
        Date date = new Date(lt);
        res = simpleDateFormat.format(date);
        return res;
    }

4..在Java中如何獲取時間戳
  • Date類提供了getTime方法:Date().getTime()可以獲取時間戳
  • Calendar.getInstance().getTimeInMillis();
  • System.currentTimeMillis(),效率更佳。

在不同的開發(fā)語言中,獲取到的時間戳的長度是不同的,例如C++中的時間戳是精確到秒的,但是Java中的時間戳是精確到毫秒的,這樣在涉及到不同語言的開發(fā)過程中,如果不進行統(tǒng)一則會出現(xiàn)一些時間不準確的問題。

5.Java中的兩種獲取精確到秒的時間戳的方法:

Java中的時間戳的毫秒主要通過最后的三位來進行計量的,我們通過兩種不同的方式將最后三位去掉。


方法一:通過String.substring()方法將最后的三位去掉
 /**
     * 獲取精確到秒的時間戳
     * @return
     */
    public static int getSecondTimestamp(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime());
        int length = timestamp.length();
        if (length > 3) {
            return Integer.valueOf(timestamp.substring(0,length-3));
        } else {
            return 0;
        }
    }

方法二:通過整除將最后的三位去掉

/**
     * 獲取精確到秒的時間戳
     * @param date
     * @return
     */
    public static int getSecondTimestampTwo(Date date){
        if (null == date) {
            return 0;
        }
        String timestamp = String.valueOf(date.getTime()/1000);
        return Integer.valueOf(timestamp);
    }
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容