zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java 日期格式化 将String日期重新格式化成String型【转】

JAVA日期 string 格式化 重新
2023-09-11 14:22:20 时间

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