Как включить букву «W» в формат даты тега JavaDoc @since?

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

Я хотел спросить об этом в Stack Overflow.

Peter Burbery 06.09.2024 02:08

Тогда удалите вопрос вместо того, чтобы комментировать.

Destroy666 06.09.2024 06:01

Извините, я не понимаю вопроса. Разве вы не можете просто набрать @since 2024-W36-4 20.02.42.06 -0400 в комментарии Javadoc? Минимальный воспроизводимый пример, пожалуйста, чтобы мы могли понять вашу ситуацию?

Anonymous 06.09.2024 08:27

это связано или похоже?

Anonymous 06.09.2024 08:28

Кстати, я вообще предлагаю не опускать Двоеточие из смещения. Да, технически это необязательно в ISO 8601, но я видел множество библиотек и протоколов, которые не допускают его отсутствия.

Basil Bourque 06.09.2024 08:51

@Anonymous Похоже, ОП пытается использовать шаблон кода Eclipse, чтобы сделать это автоматически при создании класса в Eclipse.

greg-449 06.09.2024 08:55

Я тоже в замешательстве. Какой сценарий программирования мы обсуждаем? Вы пишете код Java для создания такой строки? Или вы пытаетесь получить какой-нибудь инструмент для создания такой строки? «мой формат даты» — какой формат даты, где?

Basil Bourque 06.09.2024 08:56

@BasilBourque Похоже, это переменная в шаблоне кода Eclipse, которую вы можете установить для создания комментария класса. Вы можете указать формат даты для переменной.

greg-449 06.09.2024 08:59

Поскольку формат даты такой же, как SimpleDateFormat, вам придется использовать 'W, чтобы избежать W. Но я не вижу способа поставить ' в строку шаблона.

greg-449 06.09.2024 09:01

Спасибо, @greg-449. Итак, мы говорим о Переменных шаблона редактора Java?

Anonymous 06.09.2024 09:02

@Anonymous Да, вот и все.

greg-449 06.09.2024 09:03

В документе, на который я дал ссылку, приведен пример ${d:date('EEEE dd MM yyyy', 'fr_CH')} со строкой шаблона формата в одинарных кавычках, поэтому мы не можем помещать W в одинарные кавычки внутри этой строки. Может быть, подойдут две одинарные кавычки ''W''или экранированные одинарные кавычки \'W\'? Просто предполагаю.

Anonymous 06.09.2024 09:05

@Anonymous Я посмотрел исходный код парсера, это ужасное регулярное выражение, не поддерживающее экранирование '

greg-449 06.09.2024 09:11

Вы спрашиваете о какой-то функции IDE для автоматического создания Javadoc? Если да, то укажите это в редактировании вашего Вопроса. Объясните, что такое IDE. Ссылка на его документацию.

Basil Bourque 06.09.2024 09:16

@BasilBourque Вы говорите, что я не упоминаю, о какой IDE говорю. Это неправда. Один из тегов вопроса — затмение.

Peter Burbery 06.09.2024 14:36

@PeterBurbery Добавления тега eclipse недостаточно, извините. Это может означать, что вы программируете в Eclipse, пишете плагин Eclipse и многое другое. И вы до сих пор не сказали нам, о какой функции Eclipse вы говорите. greg-449 высказал предположение, а вы даже не подтвердили и не опровергли. Вопрос должен быть ясен сам по себе и не требовать от каждого читателя прочтения 16 комментариев только для того, чтобы понять его.

Anonymous 06.09.2024 19:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
16
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Дата шаблона кода 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. Спасибо!

Peter Burbery 06.09.2024 14:34

Другие вопросы по теме