Java 将字符串转换为格式化日期
我正在尝试使用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
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());