在java中将字符串转换为日期格式
我想将此字符串转换为以下日期格式在java中将字符串转换为日期格式,java,jcalendar,Java,Jcalendar,我想将此字符串转换为以下日期格式 String s = "2-26-2013"; Date date = new SimpleDateFormat("EEEE, MMMM/dd/yyyy").parse(s); System.out.println(date); 我得到了这个错误: Exception in thread "main" java.text.ParseException: Unparseable date: "2-26-2013" at java.text.D
String s = "2-26-2013";
Date date = new SimpleDateFormat("EEEE, MMMM/dd/yyyy").parse(s);
System.out.println(date);
我得到了这个错误:
Exception in thread "main" java.text.ParseException: Unparseable date: "2-26-2013"
at java.text.DateFormat.parse(DateFormat.java:357)
嗯,是的。传递给
simpleDataFormat
的构造函数的参数表示您希望日期采用的格式
“EEEE,MMMM/dd/yyyyy”
对于“2013年2月26日星期二”这样的输入是有效的。它对“2-26-2013”甚至都不太有效。你知道你正在解析文本,而不是格式化它吗
看起来您需要的格式字符串是“M-dd-yyyy”或可能是“M-d-yyyy”
如果试图从一种格式转换为另一种格式,则需要首先指定要分析的格式,然后指定要使用以下格式进行格式化:
SimpleDateFormat parser = new SimpleDateFormat("M-dd-yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM/dd/yyyy");
Date date = parser.parse(input);
String output = formatter.format(date);
嗯,是的。传递给
simpleDataFormat
的构造函数的参数表示您希望日期采用的格式
“EEEE,MMMM/dd/yyyyy”
对于“2013年2月26日星期二”这样的输入是有效的。它对“2-26-2013”甚至都不太有效。你知道你正在解析文本,而不是格式化它吗
看起来您需要的格式字符串是“M-dd-yyyy”或可能是“M-d-yyyy”
如果试图从一种格式转换为另一种格式,则需要首先指定要分析的格式,然后指定要使用以下格式进行格式化:
SimpleDateFormat parser = new SimpleDateFormat("M-dd-yyyy");
SimpleDateFormat formatter = new SimpleDateFormat("EEEE, MMMM/dd/yyyy");
Date date = parser.parse(input);
String output = formatter.format(date);
SimpleDataFormat的参数定义了日期的格式。上面的行与您的格式匹配,并且可以正常工作。你的例子不符合
SimpleDataFormat的参数定义了日期的格式。上面的行与您的格式匹配,并且可以正常工作。您的示例不匹配。您需要使用
MM-dd-yyyy
而不是使用MM-dd-yyyy
。SimpleDataFormat希望模式匹配其试图解析的内容。而不是使用MMMM/dd/yyyy
您需要使用MM-dd-yyyy
。SimpleDataFormat希望模式与它试图解析的模式相匹配。如果有任何建议,我只想将字符串转换为合适的格式,这样我就可以按年检索它们。你说的“按年检索”是什么意思?你的意思是提取日期的年份部分吗?@muxinam:“按年份检索”是什么意思?这与文本格式有什么关系?实际上,当我将它们转换为日期时,我将其存储在数据库中,然后另一种方法是根据特定的年份/日期检索每个记录。任何建议,我只想将字符串转换为适当的格式,以便我可以按年份检索它们。你说的“按年份检索”是什么意思? 你的意思是提取日期的年份部分吗?@muxinam:“按年份检索”是什么意思?这与文本格式有什么关系?实际上,当我将它们转换为日期时,我将其存储在数据库中,然后另一种方法是根据特定的年份/日期检索每个记录