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

liwenqiu 2006-09-06 11:11:25
String是“Tue, 05 Sep 2006 09:16:59 GMT+8”,如何格式化成一个java.util.Date返回呢?
...全文
3977 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lip009 2006-09-06
  • 打赏
  • 举报
回复
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")这种格式日期不用指定格式,应该是默认的格式,其他的要指定日期格式

jsfhua 2006-09-06
  • 打赏
  • 举报
回复
<%
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 2006-09-06
  • 打赏
  • 举报
回复
to楼上:不行 一样有异常抛出。
lip009 2006-09-06
  • 打赏
  • 举报
回复
//直接传个"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("日期格式不正确");
}
}
liwenqiu 2006-09-06
  • 打赏
  • 举报
回复
to楼上的:“EEE, d MMM yyyy HH:mm:ss Z”这个pattern也不法解析正确,请问要用什么pattern呢?
emin_lee 2006-09-06
  • 打赏
  • 举报
回复
/**
* 得到给定日期
*
* @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就可以得到了!
ykzhujiang 2006-09-06
  • 打赏
  • 举报
回复
也可以用正则表达式自己提取
hyqwater 2006-09-06
  • 打赏
  • 举报
回复
sssssssssssssss
hyqwater 2006-09-06
  • 打赏
  • 举报
回复
ffffffffffff
zhmt 2006-09-06
  • 打赏
  • 举报
回复
java.text.*
你看看
liwenqiu 2006-09-06
  • 打赏
  • 举报
回复
Date(String)都准备废掉了
另外说一句那个“Tue, 05 Sep 2006 09:16:59 GMT+8”只是举个例子,是类似这样的时间格式,应该要一个pattern来parser的吧?
lip009 2006-09-06
  • 打赏
  • 举报
回复
直接这样也可以:
java.util.Date date =new java.util.Date("Tue, 05 Sep 2006 09:16:59 GMT+8");
System.out.println(date.toLocaleString());
lip009 2006-09-06
  • 打赏
  • 举报
回复
java.util.Date date=new Date("2006/5/5");
liwenqiu 2006-09-06
  • 打赏
  • 举报
回复
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)
asdex1999 2006-09-06
  • 打赏
  • 举报
回复
date = new date.toString()
emin_lee 2006-09-06
  • 打赏
  • 举报
回复
方法是针对中国区使用的,你的可以使用下面的

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());
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧