在做會時間日期的格式互轉時,遇到了點小問題,看到一篇很不錯的博客,貼上地址分享一下,並順便copy一份過來
原文出處:https://www.iteye.com/blog/heisetoufa-1511476
將String型格式化,比如想要將2011-11-11格式化成2011年11月11日
public static void main(String args[]){ String strDate = "2011-11-11 10:11:30.345" ; // 准備第一個模板,從字符串中提取出日期數字 String pat1 = "yyyy-MM-dd HH:mm:ss.SSS" ; // 准備第二個模板,將提取后的日期數字變為指定的格式 String pat2 = "yyyy年MM月dd日 HH時mm分ss秒SSS毫秒" ; SimpleDateFormat sdf1 = new SimpleDateFormat(pat1) ; // 實例化模板對象 SimpleDateFormat sdf2 = new SimpleDateFormat(pat2) ; // 實例化模板對象 Date d = null ; try{ d = sdf1.parse(strDate) ; // 將給定的字符串中的日期提取出來 }catch(Exception e){ // 如果提供的字符串格式有錯誤,則進行異常處理 e.printStackTrace() ; // 打印異常信息 } System.out.println(sdf2.format(d)) ; // 將日期變為新的格式 }
步驟:
1、先根據你要轉換的日期格式定義出一個模式;
2、通過第一步定義的模式將要轉換的日期(字符串)中的日期提取出來;
3、將第二步得到的日期轉換為目標模式;
因此,至少需要定義兩個日期的模式?一個是要轉換的字符串當前的日期模式,另一個是要轉成的目標模式?
附上常見的模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); //時間格式 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddhhmmss"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");