java 日期格式化 将String日期重新格式化成String型【转】
在做会时间日期的格式互转时,遇到了点小问题,看到一篇很不错的博客,贴上地址分享一下,并顺便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");