SimpleDateFormat не интерпретирует %g

#simpledateformat

#simpledateformat

Вопрос:

 final String LOG_FILENAME =
 new SimpleDateFormat("'tool_'yyyyMMddHHmmss_SSS_'%g.log'").format(new Date(System.currentTimeMillis()));
String logFilePtrn = new StringBuilder(System.getProperty("user.dir")).append(System.getProperty("file.separator")).append(LOG_FILENAME).toString();
 

когда я печатаю файл журнала, он печатается следующим образом
Расположение файла журнала:/tool/log/tool_20140625155513_309_%g.log

но фактический сгенерированный файл журнала был tool_20140625161235_309_0.log

любая помощь приветствуется.

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

1. Что бы вы ожидали SimpleDateFormat сделать с %g ?

2. я хотел напечатать имя файла журнала по мере его создания. то есть перехватить %g с 0 в примере

3. Мой вопрос остается: какую часть логики в вашем коде вы ожидаете на самом деле заменить %g на 0 ?

4. когда я печатаю имя файла журнала с помощью lgr.info (MessageFormat.format(«Расположение файла журнала:{0}», logFilePtrn)); он печатается с %g вместо 0. но когда я открываю файл журнала, используя тот же logfilePtrn, он открывается с правильным именем. fileHndlr = новый обработчик файла(logFilePtrn);

5. Перефразируя мою проблему. Я использую шаблон имени файла в качестве конечной строки LOG_FILENAME = new StringBuilder(System.getProperty(«user.dir»)).append(System.getProperty(«file.separator»)).append(LOG_FILNAME).toString() ; когда я печатаю этот шаблон файла, я получаю Tool_20140627115446_451_%g.log Но когда я открываю файл журнала, используя тот же шаблон fileHndlr = new FileHandler(logFilePtrn, 1048576, 100); он открывает имя файла журнала с помощью Tool_20140627115446_451_0.log . Любые мысли.