如何解析一个字符串成日期

vincentwah 2010-01-04 03:39:28
我有如下的字符串 String dateString="Mon Jan 04 01:16:11 CST 2010"; 想生成一个Date类型的对象,改怎么转换啊?
...全文
205 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
huntor 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vincentwah 的回复:]
引用 6 楼 zfangla 的回复:
String str = "Mon Jan 04 01:16:11 CST 2010";
SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
Date date = da.parse(str, new ParsePosition(8));


有个问题,我改了下输入的日期
String str = "Mon Feb 01 01:16:11 CST 2010";
SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
Date date = da.parse(str, new ParsePosition(8));

返回Fri Jan 01 01:16:11 CST 2010
[/Quote]
[Quote=引用 10 楼 huntor 的回复:]
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US);
Date d1 = formatter.parse("Mon Jan 04 01:16:11 CST 2010");
[/Quote]
jiawazhou 2010-01-04
  • 打赏
  • 举报
回复
String dateString="Mon Jan 04 01:16:11 CST 2010";
这里面的星期和月份要写成中文的,英文的不能被转换
String dateString="星期一 一月 04 01:16:11 2010";
这样就可以了
vincentwah 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 huntor 的回复:]
这里的CST是美国的 "Central Standard Time"?
[/Quote]

是的
vincentwah 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zfangla 的回复:]
String str = "Mon Jan 04 01:16:11 CST 2010";
        SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
        Date date = da.parse(str, new ParsePosition(8));
[/Quote]

有个问题,我改了下输入的日期
String str = "Mon Feb 01 01:16:11 CST 2010";
SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
Date date = da.parse(str, new ParsePosition(8));

返回Fri Jan 01 01:16:11 CST 2010
huntor 2010-01-04
  • 打赏
  • 举报
回复
这里的CST是美国的 "Central Standard Time"?
huntor 2010-01-04
  • 打赏
  • 举报
回复
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",Locale.US);
formatter.parse("Mon Jan 04 01:16:11 CST 2010");
hewei_shine 2010-01-04
  • 打赏
  • 举报
回复
da.parse(str, new ParsePosition(8)) 丢掉前面的7位,从第8位开始解析。
phyerbarte 2010-01-04
  • 打赏
  • 举报
回复
同意楼上

import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormat {

/**
* @param args
*/
public static void main(String[] args) {
String str = "Mon Jan 04 01:16:11 CST 2010";
SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
Date date = da.parse(str, new ParsePosition(8));
System.out.println(date);
}
}
vincentwah 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zfangla 的回复:]
String str = "Mon Jan 04 01:16:11 CST 2010";
        SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
        Date date = da.parse(str, new ParsePosition(8));
[/Quote]

谢谢.
zfangla 2010-01-04
  • 打赏
  • 举报
回复
String str = "Mon Jan 04 01:16:11 CST 2010";
SimpleDateFormat da = new SimpleDateFormat("dd HH:mm:ss z yyyy");
Date date = da.parse(str, new ParsePosition(8));
vincentwah 2010-01-04
  • 打赏
  • 举报
回复
字符串是其他地方传过来的,而且我不能连数据库
hardycheng 2010-01-04
  • 打赏
  • 举报
回复
你的源字符串应该是 oracle数据库的时间串,放到数据库转一下。
vincentwah 2010-01-04
  • 打赏
  • 举报
回复
我试过以下
String dateString="Mon Jan 04 01:16:11 CST 2010";
SimpleDateFormat sf=new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy ");
Date d=sf.parse(dateString);
但是失败
SambaGao 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 applerockhool 的回复:]
看下SimpleDateFormat类的API
[/Quote]

java.sql.Date.valueOf("2198-01-01")
applerockhool 2010-01-04
  • 打赏
  • 举报
回复
看下SimpleDateFormat类的API

62,621

社区成员

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

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