Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为格式化日期_Java_Date_Simpledateformat - Fatal编程技术网

Java 将字符串转换为格式化日期

Java 将字符串转换为格式化日期,java,date,simpledateformat,Java,Date,Simpledateformat,我正在尝试使用Java的SimpleDataFormat将字符串转换为正确的日期格式。由于某些原因,它在“三月”、“五月”、“十月”和“十二月”这样的月份不起作用。有人能帮我吗?它在其他所有月份都能正常工作 import java.sql.Date; import java.text.SimpleDateFormat; import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException; public class

我正在尝试使用Java的
SimpleDataFormat
将字符串转换为正确的日期格式。由于某些原因,它在“三月”、“五月”、“十月”和“十二月”这样的月份不起作用。有人能帮我吗?它在其他所有月份都能正常工作

import java.sql.Date;
import java.text.SimpleDateFormat;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

public class test {
    public static void main(String args[]) throws java.text.ParseException {
        try {
            SimpleDateFormat parse = new SimpleDateFormat("dd. MMM yyyy hh:mm:ss");
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            //why this doesn't work with certain months like Mar, May, Oct, and Dec? otherwise it works fine

            String dateTime =   "01. Jun 2010 15:30:32";
            //String dateTime = "07. Mar 2011 15:20:10";
            //String dateTime = "07. May 2011 15:20:10";
            //String dateTime = "07. Oct 2011 15:20:10";
            //String dateTime = "07. Dec 2011 15:20:10";


            java.util.Date parsed =parse.parse(dateTime);
            System.out.println("formatted: " + formatter.format(parsed));
        } catch(ParseException e) {
            System.out.println("Caught " + e);
        } 
    }
}    

您需要在
SimpleDataFormat
上设置区域设置,否则将使用平台默认区域设置作为月份名称。您可以通过将其传递为。如果您想使用英文格式的月份名称,请通过


顺便说一下,您可以通过

System.out.println(Locale.getDefault());

这可以在操作系统级别(例如,在Windows控制面板中)和JVM参数中进行配置。

我尝试运行您的代码,它对我非常有效。你面临的问题是什么?顺便说一句,您应该捕获
java.text.ParseException
,而不是
com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException
添加
com.sun.
包以忽略IDE自动建议列表中的列表。欢迎使用。既然你是新来的,别忘了在有助于回答问题的答案上标注“已接受”。另见。
System.out.println(Locale.getDefault());