2

我有以下格式的日期:

Pon Cze 07, 2011 9:42 pm

这是英语日期的波兰语等价物:

Mon Jun 07, 2011 9:42 pm

我正在使用以下 SimpleDateFormat 匹配器:

SimpleDateFormat("EEE MMM dd, yyyy H:mm a", new Locale("pl", "PL"))

但是由于 AssertionFailedError 无法解析日期。我尝试了其他一些解决方案,但没有人适合我。你知道我做错了什么吗?

4

2 回答 2

3

有两个问题:

  1. 日期在 pl 语言环境中wt,而不是Pon在 pl 语言环境中
  2. 未考虑 AM/PM 指示符,因为您使用H(表示从 0 到 23 的小时)而不是h.

我只会从第一个空格之后的第一个字符开始解析(以避免解析“Pon”),然后替换Hh. 在模式中:

DateFormat df = new SimpleDateFormat("MMM dd, yyyy h:mm a", new Locale("pl", "PL"));
Date d = df.parse(s.substring(s.indexOf(' ') + 1));
于 2011-09-26T09:10:59.650 回答
1

似乎一周中的一天仅由两个字母表示,无论原因是什么。试试这个代码并检查输出

    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd, yyyy H:mm a", new Locale("pl", "PL"));
    GregorianCalendar gc = new GregorianCalendar(new Locale("pl", "PL"));
    gc.setTime(new Date(System.currentTimeMillis()));
    System.out.println(sdf.format(gc.getTime()));

我的输出是:“Wt wrz 27, 2011 11:05 AM”

所以也许如果你尝试两个字母的工作日,它可以工作

于 2011-09-26T09:08:18.620 回答