先上代碼
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的環境上,出現的結果集竟然是不同的...
修改爲一個通用的....