Noda Time зберігає набагато більше внутрішнього коду. Це робить його менш гнучким, оскільки ви фактично не можете створити свою власну календарну систему - але також означає, що API простіший у навчанні та використанні.
Недійсність майже завжди є помилкою в Noda Time. Більше не "якщо ви перейдете в нуль для часового поясу, ми просто використаємо системний стандарт". Вам потрібно бути явним.
Якщо говорити про за замовчуванням, ми не використовуємо системний годинник за замовчуванням. У нас є окремий IClock
інтерфейс з SystemClock
реалізацією, але нічого не за замовчуванням "поточного часу".
Крім конкретних класів будівельників, все незмінне. Я думаю MutableDateTime
(та ін.) У Joda Time були помилкою.
Ми відокремили систему календаря та часовий пояс один від одного, оскільки вони насправді дуже різні. Тож LocalDate
знає про систему календарів, яку вона використовує, але не часовий пояс, наприклад.
Спосіб вирішення локальних значень дати / часу до зонованих значень дати / часу ближче до JSR-310, ніж Joda Time. Ми не просто обробляємо неоднозначність / пропущені часи якимось певним чином: ми змушуємо користувача говорити те, що вони хочуть.
Joda Time має різні місця, де він намагається відгадати, що ви хочете від слабо типізованого API (наприклад, нового Instant(Object)
). Noda Time уникає цього, наскільки це можливо - це набагато явніше.
Час Noda суворіший у тому, яку арифметику ви можете виконувати на яких типах. Так, наприклад, ви не можете додати Period
до ZonedDateTime
, тому що є якісь збочення навколо Daylight Saving переходів , які могли б накоїти. Натомість ми заохочуємо користувачів перетворюватися на те LocalDateTime
, скільки арифметики вони хочуть у незонованому контексті, а потім конвертувати назад.
Noda Time використовує спадщину набагато менше - ієрархії в Joda Time надзвичайно глибокі та складні. Те, що багато Noda Time засноване на типах цінностей, насправді застосовує це все-таки, але є деякі місця, де ми все ще використовуємо спадкування класів, але мені вдалося значно зруйнувати ієрархію спадкування ... часто за рахунок гнучкості, яку я не вважав вартим :)