Noda Time menyimpan lebih banyak kode internal. Ini membuatnya kurang fleksibel, karena Anda sebenarnya tidak dapat membuat sistem kalender Anda sendiri - tetapi juga berarti API lebih mudah untuk dipelajari dan digunakan.
Nullity hampir selalu merupakan kesalahan dalam Noda Time. Tidak ada lagi "jika Anda memasukkan nol untuk zona waktu, kami hanya akan menggunakan standar sistem." Anda harus eksplisit.
Berbicara tentang standar ... kami tidak menggunakan jam sistem sebagai default. Kami memiliki IClock
antarmuka terpisah dengan SystemClock
implementasi, tetapi tidak ada yang default ke "waktu saat ini."
Selain dari kelas pembangun tertentu, semuanya tidak berubah. Saya pikir MutableDateTime
(et al) di Joda Time adalah kesalahan.
Kami telah memisahkan sistem kalender dan zona waktu satu sama lain, karena keduanya sangat berbeda. Jadi LocalDate
tahu tentang sistem kalender yang digunakannya, tetapi bukan zona waktu, misalnya.
Cara menyelesaikan nilai tanggal / waktu setempat ke nilai tanggal / waktu yang dikategorikan lebih dekat ke JSR-310 daripada Joda Time. Kami tidak hanya menangani ambiguitas / melewatkan waktu dengan cara tertentu: kami membuat pengguna mengatakan apa yang mereka inginkan.
Joda Time memiliki berbagai tempat untuk mencoba menebak apa yang Anda inginkan dari API yang diketik dengan lemah (mis. Baru Instant(Object)
). Noda Time menghindari ini sejauh mungkin - itu jauh lebih eksplisit.
Noda Time lebih ketat dalam jenis aritmatika apa yang dapat Anda lakukan pada jenis yang mana. Jadi misalnya, Anda tidak dapat menambahkan a Period
ke ZonedDateTime
, karena ada keanehan di sekitar transisi daylight saving yang dapat mengacaukan segalanya. Sebagai gantinya, kami mendorong pengguna untuk mengonversi LocalDateTime
, melakukan sebanyak mungkin aritmatika yang mereka inginkan dalam konteks yang tidak dikategorikan, dan kemudian mengonversi kembali.
Noda Time menggunakan warisan lebih sedikit - hierarki di Joda Time sangat dalam dan rumit. Fakta bahwa banyak Noda Time didasarkan pada tipe nilai sebenarnya menegakkan ini, tetapi ada beberapa tempat di mana kita masih menggunakan warisan kelas, tetapi saya telah berhasil meruntuhkan hierarki warisan secara signifikan ... sering dengan mengorbankan fleksibilitas yang saya anggap tidak berharga :)