獲取時間的問題

先上代碼

    public static void main(String[] args) {
        String s = updateYesterday(Timestamp.valueOf("2019-09-15 14:10:12"));
        System.out.println(s);
    }

    /*
    * 獲取當前時間前一天的日期加傳入的時間格式
    *
    * **/
    public static String updateYesterday(Timestamp timestamp){
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE,-1);
        DateFormat timeInstance = DateFormat.getTimeInstance();
        String startHms = timeInstance.format(timestamp);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String format = sdf.format(cal.getTime());
        return format + " "+startHms;
    }

該段代碼雖然很糙.....已經很糙了...

但是結果是經過驗證時間證明是可以用的了....

今天跑時出錯了.....查看服務器字符集爲:

vi /etc/sysconfig/i18n

發現字符集

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

的服務器輸出的結果集是

另外在開發服務器上的LANG="zh_CN.UTF-8",然後默默的將字符集改爲cn後,偷偷的source了一下,就沒問題....但是就是不知道爲什麼是這個問題;

//todo

之前很簡單的邏輯就是獲取long類型的時間,然後減掉一天的時間,再轉換爲String就可以了.....

但是當時確實是想與衆不同,所以才這樣騷起來的....

 

然後今天突然發現,

在不同字符集編碼的linux的環境上,出現的結果集竟然是不同的...

 

修改爲一個通用的....

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章