【转载】String类型和Date类型之间的转换

 

在实际应用中,很多时候会用到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类型  

复制代码

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());  
    }  
 

复制代码

 

//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:

复制代码

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);

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值