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