Как конвертировать 31.12.2008 3: 28p, используя Java SimpleDateFormat - PullRequest
0 голосов
/ 01 июля 2010

Я использую инструмент на основе Java, и есть опция конфигурации для формата даты, который я установил в «MM / dd / yy чч: мма», но, очевидно, ожидается «am» или «pm», а не «a»'или' p ', потому что введенные даты не распознаются.например, 31.12.2008 3: 28p

Существует ли такая спецификация SimpleDateFormat для этого конкретного формата?(Предположение с моей стороны, что этот Java-метод используется.) Далее я спрошу поставщика инструмента, но SO, похоже, «самое подходящее место»!

TIA

Ответы [ 2 ]

3 голосов
/ 01 июля 2010

вы можете сделать это

public static void main(String[] args) throws ParseException {
    DateFormatSymbols instance = DateFormatSymbols.getInstance();
    instance.setAmPmStrings(new String[]{"a","p"});
    SimpleDateFormat format = new SimpleDateFormat("MM/dd/yy hh:mma",instance);
    Date parsedDate = format.parse("12/31/2008 3:28p");
    System.out.println(parsedDate);

}
2 голосов
/ 01 июля 2010

Это не тот ответ, который вы хотите услышать, но я боюсь, что если вам разрешено вводить формат даты, вы ничего не можете с этим поделать, если только вы не можете каким-либо образом добавить «М».Основываясь на примере в javadoc для SimpleDateFormat , один 'a' принимает либо AM, либо PM.

...