как я могу отформатировать дату в java с помощью «ff»?

#java #date #date-formatting

#java #Дата #форматирование даты

Вопрос:

Я пытаюсь напечатать дату в следующем формате:

 "HHmmssff" 
  

Я использую SimpleDateFormatter .
Это не удается, потому что он не может распознать "ff" .
Есть ли другой форматировщик, который может?
Или любой другой способ сделать это?

Ответ №1:

Если вы хотите печатать секунды в долях (миллисекундах), этот пример будет полезен.

 public class DateFormatter {
    public static void main(String[] args) {
        Date date = Calendar.getInstance().getTime();
        DateFormat formatter = new SimpleDateFormat("EEEE, dd MMMM yyyy, hh:mm:ss.SSS a");
        String today = formatter.format(date);
        System.out.println("Today : "   today);
    }
}
  

Вывод:
Сегодня: вторник, 24 мая 2011, 07:23:30.627 вечера

Вы видите, что SSS в программе форматирования возвращает вам доли секунд.

Комментарии:

1. SSS — это миллисекунды, так что это почти то, что вы хотите; нужно просто отрезать лишнюю цифру (должна быть усечена в соответствии с <a href=»ss64.com/ps/syntax-dateformats.html «>ss64.com/ps/syntax-dateformats.html </a>, не округлено). Итак, просто добавьте приведенный выше код today = today.substring(0, today.length() - 2);

2. @toto Нет необходимости выполнять подстроку для удаления AM / PM, которые пришли из символа форматирования ‘a’.<br> Просто удалите ‘a’ из форматирования. т.е. formatter = new SimpleDateFormat(«hh: mm:ss.SSS»)

Ответ №2:

f недопустимое значение для SimpleDateFormat .

F означает день недели в месяце, это может быть то, что вы ищете.

Комментарии:

1. @dan, это не Java. Вместо этого посмотрите здесь: download.oracle.com/javase/6/docs/api/java/text /…

2. Если вам нужны доли секунды, используйте миллисекунды в программе форматирования.

3. @dan, там нет определенной доли секунды, вместо этого используйте SSS для миллисекунд.

Ответ №3:

S дает вам миллисекунду:

 DateFormat formatter = new SimpleDateFormat ("hhmmssS");
  

с помощью substring вы можете отрезать последние 2 цифры:

 String d = formatter.format (new Date ());
System.out.println (d.substring (0, 7));
  

Ответ №4:

Может быть, вы ищете FF вместо ff , как используется здесь?