DateTimeFormatter recordedFormatter
= DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSXX");
DateTimeFormatter displayFormatter
= DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm a", Locale.ENGLISH);
OffsetDateTime dateTime = OffsetDateTime.parse("2019-01-18T07:00:00.000+0530", recordedFormatter);
String displayDateTime = dateTime.format(displayFormatter);
System.out.println(displayDateTime);
Этот фрагмент выводит:
18.01.2009 07:00 AM
blockquote>время от записанной строки сохраняется. Время отображается с тем же смещением UTC.
В противоположность старомодному
Date
,OffsetDateTime
имеет смещение UTC, поэтому сохраняет одно и то же время дня при разборе и форматировании.Использование: Азия / Калькутта является часовым поясом .
+05:30
является смещением , они не одинаковы. Например, Азия / Коломбо в настоящее время находятся в том же смещении, но все еще считаются другим часовым поясом.Ссылка: Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать
java.time
.
На самом деле метрики являются всего одной функцией NDepend, Вы пытались использовать VisualNDepend, который позволяет Вам проанализировать свой проект намного больше подробно, чем отчет? Путем чтения комментария я почти уверен, что Вы не играли с UI NDepend (автономный или интегрированный в Visual Studio), который является лучшим способом отфильтровать данные о Вашей кодовой базе.
Я - один из разработчиков NDepend, и мы используем его много для анализа нашего собственного кода. В основном мы пишем наши собственные качественные правила с Правилами Кода по Запросам LINQ (CQLinq). Эти правила автоматически удостоверяются, что у нас нет регрессии на нашем дизайне. Здесь Вы найдете список приблизительно 200 правил кода по умолчанию.
Вот некоторые уникальные функции NDepend и не связаны с метриками кода:
Запишите правила CQLinq удостовериться, что у нас нет архитектурных дефектов, таких как циклы зависимости между нашими компонентами, UI, использующий непосредственно DB или DB запутанный с бизнес-объектами.
Удостоверьтесь, что у нас нет проблемы с покрытием кода тестами (как, мы удостоверяемся с правилом CQLinq, что, если класс, как предполагается, составляет покрытых 100%, это останется 100%, покрытыми будущим),
Осуществите код без побочных эффектов (неизменный класс / чистые методы)
Используйте способность сравнить 2 анализа, чтобы кодировать изменения обзора начиная с последнего выпуска, прежде, чем сделать новый выпуск. Строго говоря, я люблю использовать NDepend для знания, какой метод был добавлен и пересмотрен начиная с последнего выпуска и не составляет 100%, покрытых тестами.
Наличие оптимальной инкапсуляции для всех наших участников и типов (как знание, которым внутренние методы могут быть объявлены как частные). Это также связано с обнаружением невыполняемого кода, которое также поддерживает NDepend.
Для полного списка функций, если NDepend, посмотрите здесь.
Я не обязательно рассматриваю результаты NDepend как "хорошие" или "плохие" в разработке программного обеспечения, всегда существует серьезное основание, почему приложение разработано путем, это. Я рассматриваю его как отчет, который может, вероятно, помочь мне указать на проблемы со своим дизайном, но я говорю последнее слово когда дело доходит до решения, если метод должен быть пересмотрен или если это хорошо способ, которым я разработал его. В целом не получайте также схваченную попытку ответить, стоит ли это того или нет. Это определенно, вместо этого я предложил бы, чтобы Вы тщательно рассмотрели результаты. Это поможет Вам просмотреть свой дизайн с другой точки зрения и могут быть случаи, где Вы решаете способ, которым Вы разработали его, является лучшим достигнуть Ваших целей приложений.