我从dbf文件中读取数据后得到了某列文本数据是"Wed Sep 7 01:10:00 CST 2005",请问如何转换成日期型,例如我是这样尝试的:
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");系统提示:Unparseable date: "Wed Sep 7 01:10:00 CST 2005"
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");系统提示:Unparseable date: "Wed Sep 7 01:10:00 CST 2005"
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateString = sdf.format(da);
通过修改yyyy-MM-dd可得到所需的日期文本形式
* @param args
*/
public static void main(String[] args) {
Date 日期对象 = new Date("Wed Sep 7 01:10:00 CST 2005");
System.out.print((日期对象.getYear()+1900)+"-"+(日期对象.getMonth()+1)+"-"+日期对象.getDate());
}
}
你的方法是我最初试过的,你有没有试一下,这样子是有问题的
如果把时间变成"Wed Sep 7 10:01:20 CST 2005",看看结果是什么,应该是"2005-9-8"还有其他办法吗?
加上14小时就OK了。
Calendar d=Calendar.getInstance();
d.setTime(new Date("Wed Sep 7 02:10:11 GMT+0800 2005"));
System.out.println(d.getTime());
d.setTime(new Date("Wed Sep 7 01:10:00 CST 2005"));
long dis=d.getTime().getTime();
dis-=1000*60*60*14;
d.setTimeInMillis(dis);
System.out.println(d.getTime());
java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");
public class GetDate
{
public static void main(String[] args)
{
Date d=new Date("Wed Sep 08 15:39:21 CST 2005");
int year=d.getYear()+1900;
int month=d.getMonth()+1;
int day=d.getDate()-1;
System.out.println(year+"-"+month+"-"+day);
}
}
OR
try {
TimeZone tz=TimeZone.getTimeZone("US/Central");
sdf.setTimeZone(tz);
java.util.Date date= sdf.parse("Wed Sep 7 01:10:00 CST 2005");
SimpleDateFormat format1 = new SimpleDateFormat("EEE MMM yyyy/MM/dd HH:mm:ss");
format1.setTimeZone(TimeZone.getTimeZone("GMT-8:00"));
System.out.println(format1.format(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}其中使用了不同的 TimeZone让DataFormat去转换。。