Точный эквивалент неустаревший Даты (Представляют s в виде строки) в Java?

Я хотел бы расширить ответ @ Alexaku и показать, как я реализовал вспомогательную функцию. Это полезно только на одной конкретной странице, но позволяет несколько раз выполнять фрагмент кода бритвы с входными параметрами. Синтаксис невелик, но я нашел его очень полезным в отсутствие функции @helper бритвы. Сначала объявите какое-то Dto, которое будет содержать входные параметры в функцию.

@functions {
   private class Dto
   {
      public string Data { get;set; }
   }
}

Затем объявите функцию бритвы. Обратите внимание, что значение displayItem может быть многострочным, а также обратите внимание, что вы получаете доступ к переменной Dto с помощью @item.

@{
   Func<Dto, IHtmlContent> displayItem = @<span>@item.Data</span>;
}

Затем, когда вы хотите использовать шаблон бритвы, вы можете называть его следующим из любой точки страницы.

<div>
   @displayItem(new Dto {Data = "testingData1" });
</div>
<div>
   @displayItem(new Dto {Data = "testingData2" });
</div>
26
задан itsadok 18 March 2009 в 12:00
поделиться

5 ответов

Вот мое предположение (я отправил как общественная Wiki, таким образом, можно голосовать, если я прав):

Date parsed;
try {
    SimpleDateFormat format =
        new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    parsed = format.parse(dateString);
}
catch(ParseException pe) {
    throw new IllegalArgumentException(pe);
}
50
ответ дан 2 revs, 2 users 92% 15 October 2019 в 07:27
поделиться

SimpleDateFormat является способом пойти. Я могу указать, однако, что можно чувствовать себя вынужденными определить один экземпляр SimpleDateFormat и создать объекты Даты с помощью этого. Если Вы делаете, остерегаетесь, тот SimpleDateFormat не ориентирован на многопотоковое исполнение, и можно представлять себя некоторым потенциально твердым к отладке проблемам!

я рекомендовал бы пользоваться этой возможностью для рассмотрения Joda, который является намного лучшим продуманным (и ориентированный на многопотоковое исполнение) API. Это формирует основание JSR-310, который является новым предложенным API Даты Java.

я понимаю, что это - немного больше работы. Однако это, вероятно, стоит, учитывая, что необходимо осуществить рефакторинг код в данный момент.

8
ответ дан Brian Agnew 15 October 2019 в 07:27
поделиться

Если Вы будете смотреть на источник Date.parse (Представьте s в виде строки), метод, который упоминает Nicolas, то Вы будете видеть, что это будет трудно или невозможно создать формат даты, который точно воспроизводит поведение.

, Если Вы просто хотите устранить предупреждение, Вы могли бы поместить @SuppressWarnings({“deprecation”}) внешняя сторона метод, назвав Дату (Строка) конструктор.

, Если Вы действительно хотите гарантировать будущий доступ к этому поведению с будущим JREs, Вы могли бы быть в состоянии просто извлечь метод из источников JDK и поместить его в Ваши собственные источники. Это потребовало бы тщательного чтения лицензий исходного кода и рассмотрения их заявления к Вашему определенному проекту, и не могло бы быть допустимо вообще.

3
ответ дан Marty Lamb 15 October 2019 в 07:27
поделиться

DateFormat имеет статические методы тот возврат экземпляры DateFormat. Я не знаю, какой (если таковые имеются) имеет то же поведение как Date(String s), но здесь Вы идете:

DateFormat.getInstance()
DateFormat.getDateInstance()
DateFormat.getTimeInstance()
DateFormat.getDateTimeInstance()
2
ответ дан Can Berk Güder 15 October 2019 в 07:27
поделиться

Короткий ответ (перед дальнейшим расследованием): нет, это не эквивалентно. Дата (Представляют toParse в виде строки) конструктор эквивалентен методу синтаксического анализа класса Дата (который также удерживается от использования)... И javadoc этого метода требования:

Примечание, что это немного отличается от интерпретации лет меньше чем 100, который используется в SimpleDateFormat.

, Если это - единственное изменение, я предполагаю, что можно продолжить этот путь.

2
ответ дан Nicolas 15 October 2019 в 07:27
поделиться
Другие вопросы по тегам:

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