java中Date与String的相互转化

1:大体思路

这种转换要用到java.text.SimpleDateFormat类



字符串转换成日期类型:

方法1:



也是最简单的方法 Date date=new Date("2008-04-14");



方法2:



SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟

String dstr="2008-4-24";

java.util.Date date=sdf.parse(dstr);







日期转换成字符串:



SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

java.util.Date date=new java.util.Date();

String str=sdf.format(date);
 

 

2:程序实例

package test;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.text.ParseException;

import java.util.Date;

public class StringOrDate {

    public static String dateToString(Date date, String type) {

        String str = null;

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

        if (type.equals("SHORT")) {

            // 07-1-18

            format = DateFormat.getDateInstance(DateFormat.SHORT);

            str = format.format(date);

        } else if (type.equals("MEDIUM")) {

            // 2007-1-18

            format = DateFormat.getDateInstance(DateFormat.MEDIUM);

            str = format.format(date);

        } else if (type.equals("FULL")) {

            // 2007年1月18日 星期四

            format = DateFormat.getDateInstance(DateFormat.FULL);

            str = format.format(date);

        }

        return str;

    }

    public static Date stringToDate(String str) {

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

        Date date = null;

        try {

            // Fri Feb 24 00:00:00 CST 2012

            date = format.parse(str); 

        } catch (ParseException e) {

            e.printStackTrace();

        }

        // 2012-02-24

        date = java.sql.Date.valueOf(str);

                                            

        return date;

    }

    public static void main(String[] args) {

        Date date = new Date();

        System.out.println(StringOrDate.dateToString(date, "MEDIUM"));

        String str = "2012-2-24";

        System.out.println(StringOrDate.stringToDate(str));

    }

 

Date -> String

        String =(new SimpleDateFormat("格式")).format(Date); 

String -> Date

        Date = (new SimpleDateFormat("格式")).parse(String); 

 

    如果是程序中的符合日期的字符串,想存入数据库中的Date/Datetime类型的字段中,是可以直接存的,系统会自动存成Date/Datetime类型。前提是字符串的格式一定要写对哦。

       SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

        

        Date date1 = null;

        Date date2 = null;

        String str1 = "2009-02-14 12:00:00";

        String str2 = "2009年02月14日 12时00分00秒";



        // String转Date:String 必须严格按照定义的格式

        try {

            date1 = format1.parse(str1);

            date2 = format2.parse(str2);

        } catch (ParseException ex) {

            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

        }



        System.out.println("date1= "+date1);

        System.out.println("date2= "+date2);





        //Date转String

        String str3 = null;

        String str4 = null;



        str3 = format1.format(date1);

        str4 = format2.format(date2);



        System.out.println("str3= "+str3);

        System.out.println("str4= "+str4);

输出结果:

date1= Sat Feb 14 12:00:00 CST 2009
date2= Sat Feb 14 12:00:00 CST 2009
str3= 2009-02-14 12:00:00
str4= 2009年02月14日 12时00分00秒

SimpleDateFormat 语法:  
         G -- 年代标志符
         y -- 年
         M -- 月 

         d -- 日
         h -- 时 12小时制 (1~12)
         H -- 时 24小时制 (0~23)
         m -- 分
         s -- 秒
         S -- 毫秒
         E -- 星期
         D -- 一年中的第几天
         F -- 一月中第几个星期几
         w -- 一年中第几个星期
         W -- 一月中第几个星期


         a 上午 / 下午 标记符
         k 时 在一天中 (1~24)
         K 时 在上午或下午 (0~11)
         z 时区

你可能感兴趣的:(String)