Как назначить переменный формат даты Eclipse?

Это кажется, что Вы понимаете, как интерфейсы работают, но не уверены в том, когда использовать их и что способствует, они предлагают. Вот несколько примеров того, когда интерфейс имел бы смысл:

// if I want to add search capabilities to my application and support multiple search
// engines such as google, yahoo, live, etc.

interface ISearchProvider
{
    string Search(string keywords);
}

тогда я мог создать GoogleSearchProvider, YahooSearchProvider, LiveSearchProvider и т.д.

// if I want to support multiple downloads using different protocols
// HTTP, HTTPS, FTP, FTPS, etc.
interface IUrlDownload
{
    void Download(string url)
}

// how about an image loader for different kinds of images JPG, GIF, PNG, etc.
interface IImageLoader
{
    Bitmap LoadImage(string filename)
}

тогда создают JpegImageLoader, GifImageLoader, PngImageLoader, и т.д.

, Большинство дополнений и сменных систем отделываются от интерфейсов.

Другое популярное использование для шаблона Репозитория. Скажите, что я хочу загрузить список почтовых индексов из других источников

interface IZipCodeRepository
{
    IList<ZipCode> GetZipCodes(string state);
}

тогда, я мог создать XMLZipCodeRepository, SQLZipCodeRepository, CSVZipCodeRepository, и т.д. Для моих веб-приложений, я часто создаю репозитории XML вначале, таким образом, я могу разбудить что-то и работающий до Базы данных Sql, являющейся готовым. Как только база данных готова, я пишу SQLRepository для замены версии XML. Остальная часть моего кода остается неизменной, так как это выполняет soley прочь интерфейсов.

Методы могут принять интерфейсы, такие как:

PrintZipCodes(IZipCodeRepository zipCodeRepository, string state)
{
    foreach (ZipCode zipCode in zipCodeRepository.GetZipCodes(state))
    {
        Console.WriteLine(zipCode.ToString());
    }
}
35
задан faintsignal 1 February 2018 в 23:46
поделиться

2 ответа

Обновление от февраля 2016 г .: ошибка 75981 официально исправлена!
См. Ответ Jmini ниже

enter image description here


Обновление от июля 2015 года, 6 лет спустя:

Ошибка, упомянутая ниже, кажется исправленной в Eclipse 4.x.
Эрик Ван комментарии ниже :

@date ${id:date('YYYY-MMM-dd')} ${time} 

это дает мне английский формат даты и времени в eclipse 4.


Исходный ответ 2009 Eclipse 3.x

Argh! Именно для этого существует давняя ошибка: ошибка 75981

Переменная $ {date} может быть расширена, чтобы принимать аргумент (аналогично другим параметризации, добавленные в 3.3M1), например $ {d: date (format)} , где формат - шаблон для SimpleDateFormat .

Единственная альтернатива было бы изменить класс SimpleTemplateVariableResolver (как описано в этот поток ) из пакета org.eclipse.jface.text.templates . (У вас есть пример такого расширения ).

В этой ветке упоминаются источники, где вы можете найти класс.

\eclipse\plugins\org.eclipse.platform.source_3.1.0\src\org.eclipse.text_3.1.0\src.zip

Пример:

public static class Date extends SimpleTemplateVariableResolver {
/**
* Creates a new date variable
*/
public Date() {
super("date", TextTemplateMessages.getString("GlobalVariables.variable.description.date")); //$NON-NLS-1$ //$NON-NLS-2$ }

protected String resolve(TemplateContext context) {
    //return DateFormat.getDateInstance().format(new java.util.Date());
    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    return df.format(new java.util.Date()); } }
34
ответ дан 27 November 2019 в 07:06
поделиться

Вы можете указать Eclipse использовать локаль, отличную от локали вашей операционной системы. Eclipse 3.5 (64 бит) не использует настройку региона MacOS X. Язык установки MacOS X english с Германией в качестве страны обеспечивает неправильный формат даты.

Вы можете исправить это для вашей установки Eclipse, если добавите следующие строки в ваш eclipse.ini:

-Duser.language=de
-Duser.region=DE
12
ответ дан 27 November 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: