将字符串"30-MAR-07"转换为日期对象

use*_*804 0 java date simpledateformat

SimpleDateFormat formatter = new SimpleDateFormat("mm/dd/yyyy");
dt = formatter.parse(temp[0]);
Run Code Online (Sandbox Code Playgroud)

给了我错误

java.text.ParseException:无法解析的日期:"30-MAR-07"

有没有什么办法可以将给定的String格式化为Date对象,而无需编写自己的字符串拆分和转换为月份数字方法?谢谢

Jig*_*shi 10

使用正确的格式,如下所示,

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy");
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 6

您的SimpleDateFormat模式对于"30-MAR-07" 完全不正确.它的值是错误的,它使用错误的分隔符和错误的月份格式.你要:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy");
Run Code Online (Sandbox Code Playgroud)

您可能还想指定区域设置,例如

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy", Locale.US);
Run Code Online (Sandbox Code Playgroud)

我已经检查过这是否有效 - 至少在我的机器上:)