涉及到多國化的網站,不僅要考慮語言多國化,還要考慮時間的通用性。
首先,要記住: JAVA的 System CurrentTime 就是 utc 的時間。
我們的目的就是要保證服務器存的時間爲UTC時間(爲什麼要強調這句?因爲時間是客戶輸入的,比如一個搜索功能中,客戶要查詢某個時間段的數據),而數據顯示的時候是根據客戶的時區來顯示的。
分爲
服務端: 又分爲system 到 db,基本沒啥額外處理。對於程序,後端則要設置個 locale的時區,如果是多國通用,則可以根據一些客戶端信息來判斷。但比較周全的方法是可以讓用戶選擇,比如google ,phpbb 等就可以讓用戶自己選時區。這個參數主要是用來對客戶端的時區時間轉換
客戶端:
JSTL: <fmt:formatDate value="${createdTime}" pattern="yy-MM-dd HH:mm:ss" timeZone="PRC"/>
或 <fmt:formatDate value="${displayDate}" pattern="yyyy-MM-dd" timeZone="${timeZone}"/>
交互:(客戶端提交時)
public static Date strToDateTime(String date,String timeZone) {
// date 爲客戶端自己填寫的當地時間
Date d = null;
try {
if(date.length()>10){
java.text.SimpleDateFormat f= new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
f.setTimeZone(TimeZone.getTimeZone(timeZone));
d=f.parse(date);
}else{
java.text.SimpleDateFormat f= new java.text.SimpleDateFormat("yyyy-MM-dd");
f.setTimeZone(TimeZone.getTimeZone(timeZone));
d=f.parse(date);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return d;
}
閒來無聊,發發代碼,互相學習。