2012-01-03 14 views
18

Używam Joda, a robię klasy do przechowywania znacznika czasu dla transakcji i przetrwać do DB. Czy powinienem używać Instant lub DateTime?Joda DateTime vs Instant

Odpowiedz

22

Użyj tego, który najlepiej pasuje do Twojego modelu. Instant jest reprezentacją milisekundowej wartości znacznika czasu, DateTime to obiekt oparty na kalendarzu. Każdy z nich można łatwo przekonwertować na drugi, więc nie ma potrzeby ograniczania modelu do potrzeb bazy danych.

Musisz zadać sobie pytanie - jakie dane właściwie modeluję? Czy jest to wartość roku/miesiąca/dnia/godziny/minuty/sekundy/etc, czy jest to tylko arbitralny moment w czasie bez konkretnego znaczenia?

+3

Należy również pamiętać, że DateTime i Instant udostępniają tę samą klasę bazową (AbstractInstant). –

+0

Zgadzam się z tą odpowiedzią. Po prostu dodam, że w razie wątpliwości użyj 'DateTime'. Koncentrowanie się na milisekundach zwykle prowadzi do frustracji i błędów, ponieważ data i godzina są trudnym problemem. –

+0

DateTime ma również dokładność milisekundową – nob

Powiązane problemy