在实际应用中,很多时候会用到String和Date类型之间的转换,比如:

在javaEE项目中,会接受到日期格式的String,我们如果要将其转换为Date格式,就会用到SimpleDateFormat类。

1.将String转换为Date类

import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
  
 public class StringToDate {
  
     public static void main(String[] args) {
         //获得一个时间格式的字符串
         String dateStr = "2016-12-31";
         //获得SimpleDateFormat类,我们转换为yyyy-MM-dd的时间格式
         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
         try {
             //使用SimpleDateFormat的parse()方法生成Date
             Date date = sf.parse(dateStr);
             //打印Date
             System.out.println(date);
         } catch (ParseException e) {
             e.printStackTrace();
         }
  
     }
  
 }


2.将Date转换为String类型
Object类中为我们提供了toString方法,然而该方法对Date类进行转换时,往往达不到我们想要的效果,我们试一下这样的代码。

import java.util.Date;
  
 public class DateToString1 {
  
     public static void main(String[] args) {
         // 获得当前时间
         Date date = new Date();
         //打印toString()
         System.out.println("当前时间:"+date.toString());
     }
  
 }


这时候打印出来的String为:当前时间:Sat Dec 31 13:59:22 CST 2016
what?!!

当然,这是一种格式的时间,但是对于客户而言,这样的时间显然是不行的,那么我们就需要将其转换为我们常用到的格式:yyyy-MM-dd

废话不多说,看代码:

import java.text.SimpleDateFormat;
 import java.util.Date;
  
 public class DateToString1 {
  
     public static void main(String[] args) {
         // 获得当前时间
         Date date = new Date();
         // 获得SimpleDateFormat类
         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
         //打印当前时间
         System.out.println("当前时间:"+sf.format(date));
     }
  
 }


这时候的打印结果为: 当前时间:2016-12-31
打印结果已经受到我们控制了,我们还可以打印出:"2016年12月31日这样的结果。

只要把"yyyy-MM-dd"修改为"yyyy年MM月dd日"即可。

 

SimpleDateFormat中parse和format的区别

 


parse()返回的是一个Date类型数据,format返回的是一个StringBuffer类型的数据


//SimpleDateFormat中的parse方法可以  
//把String型的字符串转换成特定格式的date类型


java string 转换大小写 java string 转换成date_System


public static void main(String[] args) {  
        String str = "2013-01-21 15:10:20";  
        Date date = null;  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH:mm:ss");  
        try {  
            date = sdf.parse(str);  
        } catch (ParseException e) {  
            System.out.println(e.getMessage());  
        }  
        System.out.println(date);  
        System.out.println(date.getTime());  
    }


java string 转换大小写 java string 转换成date_System

 


//SimpleDateFormat中的format方法可以 
//把Date型的字符串转换成特定格式的String类型


public static void main(String[] args){
 SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
 String a=dateformat.format(new Date());
 System.out.println("时间:"+a);
 
}


 


EX:

java string 转换大小写 java string 转换成date_System


public class FormatDateTime {

public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm"); 
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
} 
}

SimpleDateFormat sdf = new SimpleDateFormat();String d = sdf.format(Date date);Date d = sdf.parse(String sourse);


java string 转换大小写 java string 转换成date_System