Я пытаюсь указать формат [дата недели ISO][1] в своем теге JavaDoc @since, который включает букву «W» для обозначения недели года.
В настоящее время, когда я использую ${currentDate:date('YYYY-w-u HH.mm.ss.SS Z')}
, дата форматируется как 2024-36-4 20.02.42.06 -0400
. Однако я хочу, чтобы формат включал букву «W» следующим образом: 2024-W36-4 20.02.42.06 -0400
.
Я пробовал использовать 'W'
, "W"
и \W
в строке формата даты, но они либо приводят к неправильному формату, либо неправильно интерпретируются (например, \W
становится \1
).
Как мне избежать символа «W», чтобы он рассматривался как литерал в строке формата даты в функции ${currentDate}
или аналогичном механизме?
Пример JavaDoc:
/**
* Description of your class or method.
*
* @since 2024-W36-4 20.02.42.06 -0400
*/
public class MyClass {
// Code here
}
Будем очень признательны за любые идеи или альтернативные подходы для достижения желаемого формата даты с буквой «W». Спасибо!
Я использую Эклипс. [1]: https://en.m.wikipedia.org/wiki/ISO_week_date
Тогда удалите вопрос вместо того, чтобы комментировать.
Извините, я не понимаю вопроса. Разве вы не можете просто набрать @since 2024-W36-4 20.02.42.06 -0400
в комментарии Javadoc? Минимальный воспроизводимый пример, пожалуйста, чтобы мы могли понять вашу ситуацию?
это связано или похоже?
Кстати, я вообще предлагаю не опускать Двоеточие из смещения. Да, технически это необязательно в ISO 8601, но я видел множество библиотек и протоколов, которые не допускают его отсутствия.
@Anonymous Похоже, ОП пытается использовать шаблон кода Eclipse, чтобы сделать это автоматически при создании класса в Eclipse.
Я тоже в замешательстве. Какой сценарий программирования мы обсуждаем? Вы пишете код Java для создания такой строки? Или вы пытаетесь получить какой-нибудь инструмент для создания такой строки? «мой формат даты» — какой формат даты, где?
@BasilBourque Похоже, это переменная в шаблоне кода Eclipse, которую вы можете установить для создания комментария класса. Вы можете указать формат даты для переменной.
Поскольку формат даты такой же, как SimpleDateFormat
, вам придется использовать 'W
, чтобы избежать W. Но я не вижу способа поставить '
в строку шаблона.
Спасибо, @greg-449. Итак, мы говорим о Переменных шаблона редактора Java?
@Anonymous Да, вот и все.
В документе, на который я дал ссылку, приведен пример ${d:date('EEEE dd MM yyyy', 'fr_CH')}
со строкой шаблона формата в одинарных кавычках, поэтому мы не можем помещать W
в одинарные кавычки внутри этой строки. Может быть, подойдут две одинарные кавычки ''W''
или экранированные одинарные кавычки \'W\'
? Просто предполагаю.
@Anonymous Я посмотрел исходный код парсера, это ужасное регулярное выражение, не поддерживающее экранирование '
Вы спрашиваете о какой-то функции IDE для автоматического создания Javadoc? Если да, то укажите это в редактировании вашего Вопроса. Объясните, что такое IDE. Ссылка на его документацию.
@BasilBourque Вы говорите, что я не упоминаю, о какой IDE говорю. Это неправда. Один из тегов вопроса — затмение.
@PeterBurbery Добавления тега eclipse недостаточно, извините. Это может означать, что вы программируете в Eclipse, пишете плагин Eclipse и многое другое. И вы до сих пор не сказали нам, о какой функции Eclipse вы говорите. greg-449 высказал предположение, а вы даже не подтвердили и не опровергли. Вопрос должен быть ясен сам по себе и не требовать от каждого читателя прочтения 16 комментариев только для того, чтобы понять его.
Дата шаблона кода Eclipse использует шаблон SimpleDateFormat
.
SimpleDataFormat потребует кавычек вокруг W, поэтому 'W'
Но анализатор шаблонов кода не поддерживает экранирование '
в середине шаблона, поэтому вы не можете сделать это с одной переменной.
Вы можете сделать это, используя две переменные с W в виде обычного текста между ними:
@since ${part1:date('yyyy-')}W${part2:date('w-u HH.mm.ss.SS Z')}
Это работает! Я думал, что это не сработает, потому что попробовал что-то подобное, но имя переменной не менял. Кажется, у меня было что-то вроде @since ${d:date('yyyy-')}W${d:date('w-u HH.mm.ss.SS Z')}, и я получил ошибку. Исправление состоит в том, чтобы использовать разные имена переменных, например part1 и part2. Спасибо!
Я хотел спросить об этом в Stack Overflow.