java:我如何从“日期”中选择日期;2014年5月1日星期四00:00:00西部”;至;2014-01-05 00:00:00.0“;

java:我如何从“日期”中选择日期;2014年5月1日星期四00:00:00西部”;至;2014-01-05 00:00:00.0“;,java,date,datetime,Java,Date,Datetime,我想如何将日期从“2014年5月1日星期四00:00:00西部”转换为“2014-01-05 00:00:00.0” 我尝试使用以下代码: SimpleDateFormat toFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); String dateStr = getDtdebut().toString(); Date date = new Date(); try {

我想如何将日期从“2014年5月1日星期四00:00:00西部”转换为“2014-01-05 00:00:00.0”

我尝试使用以下代码:

SimpleDateFormat toFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
        String dateStr = getDtdebut().toString();
        Date date = new Date();
        try {
            date = toFormat.parse(dateStr);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
但我有一个错误:

java.text.ParseException: Unparseable date: "Thu May 01 00:00:00 WEST 2014"
at java.text.DateFormat.parse(Unknown Source)
at ensa.pfe.action.GestionOperations.filtre(GestionOperations.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
..........

java.util.Date
只是一个围绕时间戳值(即自UNIX纪元以来的毫秒数)的包装类。此对象不以任何方式连接到任何特定的日期格式或日历系统

您需要的只是格式化一个日期,而不是使用一些默认的格式化程序将其转换为字符串,然后再将其解析回格式化独立对象。使用


你为什么要先将它转换为字符串?因为我不知道这是否是另一种转换方法。你根本不应该转换它,只需在你拥有的日期对象上应用一个格式化程序
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
System.out.println(format.format(getDtdebut()));