Różnica między Time
a DateTime
ma związek z wdrożeniem. DateTime
pochodzi ze świata Rails i jest arbitralną datą z porą dnia. Jest to bardziej system oparty na kalendarzu. Time
jest mierzona jako sekundy od 1 stycznia 1970 roku UTC i nie jest zależna od strefy czasowej. W niektórych systemach jest on ograniczony do wartości między 1901 a 2038 r., Co ogranicza tradycyjnie zapisywanie tej wartości jako 32-bitową liczbę całkowitą ze znakiem, ale nowsze wersje Ruby mogą obsługiwać znacznie szerszy zakres, używając wartości 64-bitowej lub BigNum jako wymagane.
W skrócie, DateTime
jest to, co dostajesz z bazy danych w Railsach, gdzie czas jest tradycyjnie używany przez Ruby. Jeśli pracujesz z wartościami, w których daty są ważne i chcesz wiedzieć, na przykład o końcu miesiąca lub o dniu, w którym będzie to 6 tygodni, skorzystaj z narzędzia DateTime. Jeśli tylko mierzysz upływ czasu i nie przejmuj się tym, użyj czasu. W razie potrzeby można je łatwo przekonwertować.
Date
z drugiej strony to tylko datę w kalendarzu i nie ma żadnych związanych razy. Możesz ich użyć tam, gdzie czasy są nieistotne.
strptime
jest skrótem od "czas analizy", gdzie strftime
służy do "czasu formatowania". Oznacza to, że strptime
jest przeciwieństwem strftime
, chociaż używają one, dogodnie, tej samej specyfikacji formatowania. Rzadko widziałam, że strptime
używany od DateTime.parse
jest zwykle dobry w zbieraniu informacji o tym, co się dzieje, ale jeśli naprawdę musisz to przeliterować, koniecznie użyj starszego parsera.
Zważywszy "26.04.2017", w celu przechowywania w bazie danych, by analizować, a następnie format: Date.strptime ("26.04.2017", '% m /% d /% Y'). strftime ('% Y-% m-% d') – Donato