Я пытаюсь указать формат [дата недели 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.