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 时区

原文地址:https://www.cnblogs.com/xuewater/p/2620811.html