㈠ java中的Date怎麼轉換成YYYYMMDD形式
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
創建SimpleDateFormat對象的時候使用帶Locale的構造參數
因為你的星期和月份是用E文寫的 所以parse回來的時候自然得用E文的Locale 用默認中文的Locale就會認不出來
btw 你用US的Locale的話 時區也會跑那裡去 所以你應該給時區指定GMT+08:00 而不是光一個GMT
參考這段小代碼
String s ="Thu, 02 Mar 2006 05:14:25 GMT+08:00";
SimpleDateFormat inSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
SimpleDateFormat outSdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.CHINA);
try {
Date dateS = inSdf.parse(s);
System.out.println(outSdf.format(dateS));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
㈡ Java如何獲取Date類型且格式為yyyy-mm-dd的日期數據
第一種方法:
/**
*將字元串格式yyyyMMdd的字元串轉為日期,格式"yyyy-MM-dd"
*
* @param date 日期字元串
* @return 返回格式化的日期
* @throws ParseException 分析時意外地出現了錯誤異常
*/
public static String strToDateFormat(String date) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
formatter.setLenient(false);
Date newDate= formatter.parse(date);
formatter = new SimpleDateFormat("yyyy-MM-dd");
return formatter.format(newDate);
}
第二種方法:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String nowdayTime = dateFormat.format(newDate());
Date nowDate = dateFormat.parse(nowdayTime);
簡單思路就是:先通過DateFormat將當前Date轉化為String格式日期,再通過DateFormat解析該String日期,再次生成Date。