您的位置:首页 > 编程语言 > Java开发

JAVA字符串转日期或日期转字符串

2015-07-23 10:57 337 查看
文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进

来!

用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );

这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss

就不需要我再解释了吧!

PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小

时制,而hh是12小时制。

1.字符串转日期

 

2008-07-10 19:20:00 要把它转成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );

2.日期转字符串

假如把今天的日期转成字符串可用 String str = sdf.format(new Date());

这个字符串内容的格式类似2008-07-10 19:20:00。

透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2008

年7月10日,我们可以这么写:

SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );

String str = sdf.format(new Date());

str便会依照我们设定的格式输出了。

3.部分字段的字符串转时间

例如:SimpleDateFormat format = new SimpleDateFormat("HH:mm");

我们如果只输入部分字段。其他默认字段为1970-01-01 00:00:00

############例子

import java.util.Date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

public class ConvertDemo {

/**

* 日期转换成字符串

* @param date

* @return str

*/

public static String DateToStr(Date date) {

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

String str = format.format(date);

return str;

}

/**

* 字符串转换成日期

* @param str

* @return date

*/

public static Date StrToDate(String str) {

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

Date date = null;

try {

date = format.parse(str);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

/**

* 字符串转换成日期:部分字段

* @param str

* @return date

*/

public static Date StrToDate_2(String str) {

SimpleDateFormat format = new SimpleDateFormat("HH:mm");

Date date = null;

try {

date = format.parse(str);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

public static void main(String[] args) {

Date date = new Date();

System.out.println("日期转字符串 :" + ConvertDemo.DateToStr(date));

System.out.println("字符串转日期 :" + ConvertDemo.StrToDate(ConvertDemo.DateToStr(date)));

System.out.println("字符串转日期2:" + ConvertDemo.StrToDate_2("15:21"));

}

}

输出结果:

Lenovo:/tmp$ java ConvertDemo

日期转字符串 :2015-07-23 10:38:40

字符串转日期 :Thu Jul 23 10:38:40 CST 2015

字符串转日期2:Thu Jan 01 15:21:00 CST 1970

PS:这个链接好像更精确一点:---http://www.joda.org/joda-time/

################因为Date不建议用所以增加下列转换,建议使用Calendar#######################

1.Calendar 转化 String

//获取当前时间的具体情况,如年,月,日,week,date,分,秒等

Calendar calendat = Calendar.getInstance();

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

String dateStr = sdf.format(calendar.getTime());

2.String 转化Calendar

String str="2010-5-27";

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

Date date =sdf.parse(str);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

3.Date 转化String

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

String dateStr=sdf.format(new Date());

4.String 转化Date

String str="2010-5-27";

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

Date birthday = sdf.parse(str);

5.Date 转化Calendar

Calendar calendar = Calendar.getInstance();

calendar.setTime(new java.util.Date());

6.Calendar转化Date

Calendar calendar = Calendar.getInstance();

java.util.Date date =calendar.getTime();

下面有个例子,插入oralce表类型为DATE的数据

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");

String date = sdf.format(new Date());

-----------------------------------------

String sql = "Insert into SM_SEND (*****************) " +

"values (*******************************

"',1," + "to_date('" +date+ "','YYYY-MM-DD HH24:MI:SS')" +

"," + "to_date('" +date+ "','YYYY-MM-DD HH24:MI:SS')" +

",0,null,null,null,null,null,null,null)";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: