0

我正在尝试将字符串格式化为特定的日期格式,但转换存在一些问题。在转换后的字符串中,月份总是“一月”。以下是代码片段:

    String date = "30/10/2012-11:11:11";
    DateFormat dateForm = new SimpleDateFormat("dd/mm/yyyy-hh:mm:ss");

    try {
       System.out.println(dateForm.parse(date));
    } 
    catch (ParseException e) {
       e.printStackTrace();
    }

我无法得到这背后的原因。请建议。

4

3 回答 3

3

正如其他人所说,你应该使用MM几个月 - 我强烈怀疑你总是想使用HH几个小时,而不是hh. HH是 24 小时制;hh是 12 小时制,通常与 AM/PM 指示符一起使用。

最后,您应该考虑要SimpleDateFormat使用的时区和语言环境。即使在这种没有任何月份或日期名称的情况下,我仍然会明确指定语言环境,以明确您没有尝试使用任何本地化数据。

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy-HH:mm:ss", Locale.US);
// TODO: Set the time zone appropriately
于 2012-12-04T07:45:20.123 回答
2

使用MM而不是mm格式字符串的日期部分。mm是几分钟,而不是几个月。

参考:http ://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

于 2012-12-04T07:43:25.313 回答
1

请用"dd/MM/yyyy-hh:mm:ss"

于 2012-12-04T07:43:56.330 回答