站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题如何格式化一个String为Date对象?

如何格式化一个String为Date对象?

摘要: 如何格式化一个String为Date对象?


String是“Tue, 05 Sep 2006 09:16:59 GMT+8”,如何格式化成一个java.util.Date返回呢?


java.util.Date date=new Date("2006/5/5");


直接这样也可以:
java.util.Date date =new java.util.Date("Tue, 05 Sep 2006 09:16:59 GMT+8");
System.out.println(date.toLocaleString());


Date(String)都准备废掉了
另外说一句那个“Tue, 05 Sep 2006 09:16:59 GMT+8”只是举个例子,是类似这样的时间格式,应该要一个pattern来parser的吧?


java.text.*
你看看


ffffffffffff


sssssssssssssss


也可以用正则表达式自己提取


/**
* 得到给定日期
*
* @param date 给定日期
* @param pattern 给定日期格式
* @return Date 给定日期
*/
Date getDate(String date, String pattern) {

SimpleDateFormat formatter = new SimpleDateFormat(pattern);
try {
return formatter.parse(date);
}
catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}
---------------------------------------------
日期格式的表达式,你可以通过API查一下SimpleDateFormat就可以得到了!



to楼上的:“EEE, d MMM yyyy HH:mm:ss Z”这个pattern也不法解析正确,请问要用什么pattern呢?


//直接传个"Tue, 05 Sep 2006 09:16:59 GMT+8"就可以得到
Date getDate(String date) {

SimpleDateFormat formatter = new SimpleDateFormat();
try {
return formatter.parse(date);
}
catch (Exception e) {
throw new RuntimeException("日期格式不正确");
}
}


to楼上:不行 一样有异常抛出。


<%
java.util.Calendar cal = java.util.Calendar.getInstance();
java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String time = fmt.format(cal.getTime());
out.print(time)
%>
输出为 2006-09-06 12:30



liwenqiu(小秋) ( ) 信誉:100 Blog 2006-09-06 12:31:00 得分: 0


to楼上:不行 一样有异常抛出。
===================================
java.text.SimpleDateFormat date1=new java.text.SimpleDateFormat();
java.util.Date dd=date1.parse("Tue, 05 Sep 2006 09:16:59 GMT+8");
这个是正确的
java.text.SimpleDateFormat date1=new java.text.SimpleDateFormat();
java.util.Date dd=date1.parse("2005-8-8");
这个是错误的
java.text.SimpleDateFormat date1=new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date dd=date1.parse("2005-8-5");
这样正确
==================
也就是说,("Tue, 05 Sep 2006 09:16:59 GMT+8")这种格式日期不用指定格式,应该是默认的格式,其他的要指定日期格式




方法是针对中国区使用的,你的可以使用下面的

String dateString = "Tue, 05 Sep 2006 09:16:59 GMT +8";
String pattern = "EEE, dd MMM yyyy HH:mm:ss z";

SimpleDateFormat formatter = new SimpleDateFormat(pattern,Locale.US);
try {
Date date = formatter.parse(dateString);
System.out.println("date = " + date);
}
catch (Exception e) {
throw new RuntimeException(e.getMessage());
}


date = new date.toString()


To:lip009(深蓝忧郁)
public class Test {
public static void main(String[] args) throws Exception {
java.text.SimpleDateFormat date1=new java.text.SimpleDateFormat();
java.util.Date dd = date1.parse("Tue, 05 Sep 2006 09:16:59 GMT+8");
}
}
抛出异常:
Exception in thread "main" java.text.ParseException: Unparseable date: "Tue, 05 Sep 2006 09:16:59 GMT+8"
at java.text.DateFormat.parse(DateFormat.java:335)


↑返回目录
前一篇: 公交车问题
后一篇: 它里面的Function的参数可以传对象吗?